msSaveBlob任意路径/它保存在哪里?

时间:2014-04-09 18:27:56

标签: javascript internet-explorer

我被要求做一些与JS有点不自然的事情。

基本上,我需要以允许用户在本地文件系统中修改文件的方式持久保存文件。

我看到HTML5指定了一个看起来部分适合的FileWriter API。不幸的是,用户有IE - http://caniuse.com/filesystem - 所以最接近的似乎是msSaveBlob。

msSaveBlob是否支持任意文件路径?理想情况下,我想将这些文件保存在用户" Documents"夹。如果没有,这个沙盒文件系统如何工作?它在哪里?它是否保留原始文件特征(或BLOB是否意味着某种类型的块存储)?

注意 - 我知道有一个"另存为"带有常规链接的选项,但我需要知道用户最终保存文件的位置。

或者,您是否知道更好的保存方法,哪些方法可以让我使用任意路径?我不反对Flash或Silverlight解决方案,只要它附带一个JS包装器。

1 个答案:

答案 0 :(得分:1)

FileSystem API目前仅由Google Chrome和Opera支持。此API可用于创建,读取,写入和删除文件和目录,但仅限于文件系统的隔离部分。我展示了一个详细的例子here(请参阅答案的第二部分)。

关于navigator.msSaveBlobhere是MSDN上的一个示例。此功能显示通知栏,其中包含" Save"和#34;另存为"纽扣。通过单击后者,用户可以选择任意位置来保存文件。

如果你使用navigator.msSaveOrOpenBlob,那么用户也会得到一个" Open"按钮。如果用户单击此文件,则将打开该文件。在上面提到的MSDN示例中,文本文件是从JavaScript字符串创建的,该字符串将在记事本中打开。

将服务器上的文件保存到客户端计算机上任意位置的常用方法是create a link。用户可以单击该链接,或选择&#34;将链接另存为...&#34;从弹出菜单中。如果要保存在JavaScript中创建的blob,则可以尝试使用download标记的<a>属性,我会显示示例here。这种技术适用于IE10 +。