2

我们正在开发一个应用程序,用于从HTTP URL下载文件,这些URL的扩展名/文件类型在运行时才知道。我们一直在关注本教程作为一个起点,但由于我们不处理图像,这对我们没有帮助。

问题是,教程中的代码将为您提供水滴对象,我找不到任何代码可以让我们:

  1. 将Blob转换为字节数组。
  2. 将Blob直接保存到文件系统。

最终目标是将给定URL处的文件无缝保存到文件系统,并使用默认应用程序启动它,或者直接从URL启动它(如果您只调用窗户。系统。Launcher.launchUriAsync(uri);).

任何人的任何见解都会受到极大的赞赏。

1答案1

重置为默认值
4

关于将内容下载到字节数组:使用WinJS.xhr软件responseType选项为“arraybuffer”时,将返回中的内容阵列缓冲区.A型javascript类型的数组例如,可以从ArrayBuffer中实例化UInt8阵列。这样可以将内容读入字节数组。代码应该如下所示:

//todo添加所需的其他选项var选项={url:url,responseType:'arraybuffer'};WinJS.xhr(选项).then(函数onxhr(ab){var bytes=新Uint8Array(ab,0,ab.byteLength);},函数onerror(){//句柄错误});

一旦您获得了将文件保存到文件系统的权限,用户可以使用保存文件选取器或使用拾取文件夹文件夹选择器-文件可以保存在本地文件系统上。此外,文件可以保存到应用程序数据文件夹。

出于安全原因,无法加载本地文件系统中的AFAIK、html/js/css文件或应用程序数据。尽管DOM可以在约束条件下进行操作,以添加内容。我不确定你的申请要求。您可能需要考虑其他选项,而不是启动下载的html文件。

4
  • 谢谢@Sushil。正是我们要找的。现在一切都很好。我们将文件保存到应用程序数据,并在没有问题的情况下启动它。 评论 2013年12月6日13:32
  • 文件是html还是图像?根据文档-图像可以工作,但html无法工作。
    – 苏希尔
    评论 2013年12月7日2:41
  • 它通常是某种图像。但也可能是PDF或办公文件。HTML通常不会出现,但我们会看看它会发生什么。谢谢你的提醒! 评论 2013年12月8日1:28
  • 它不应该直接使用“ab”,而应该使用ab.response 评论 2014年6月28日17:55

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览已标记的其他问题问你自己的问题.