msSaveBlob任意路径/保存在哪里
msSaveBlob arbitrary path / where does it save?
我被要求用JS做一些不自然的事情。
基本上,我需要以允许用户在本地文件系统中修改文件的方式持久保存文件。
我看到HTML5指定了一个FileWriter API,它似乎部分适合这一点。不幸的是,用户有IE——http://caniuse.com/filesystem--所以最接近的东西似乎是msSaveBlob。
msSaveBlob支持任意文件路径吗?理想情况下,我希望将这些文件保存在用户的"Documents"文件夹中。如果没有,这个沙盒文件系统是如何工作的?它在哪里?它是否保留了原始文件的特征(或者BLOB是否意味着某种类型的块存储)?
注意-我知道有一个带有常规链接的"另存为"选项,但我需要知道用户最终将文件保存在哪里。
或者,你知道一种更好的保存方式吗,让我使用任意路径?我并不反对Flash或Silverlight解决方案,只要它带有JS包装即可。
FileSystem API目前仅受Google Chrome和Opera支持。此API可用于创建、读取、写入和删除文件和目录,但只能用于文件系统的独立部分。我在这里展示了一个详细的例子(请参阅答案的第二部分)。
关于navigator.msSaveBlob
,下面是MSDN上的一个示例。此功能显示带有"保存"answers"另存为"按钮的通知栏。通过单击后者,用户可以选择任意位置来保存文件。
如果您使用navigator.msSaveOrOpenBlob
,则用户还将获得一个"打开"按钮。如果用户单击此项,则该文件将被打开。在我上面提到的MSDN示例中,从JavaScript字符串创建了一个文本文件,该字符串将在记事本中打开。
使服务器上的文件可以保存到客户端机器上的任意位置的常用方法是创建一个链接。用户可以点击链接,或者从弹出菜单中选择"将链接另存为…"。如果您想保存用JavaScript创建的blob,那么您可以尝试使用<a>
标记的download
属性,我在这里展示了一个示例。这项技术适用于IE10+。
- 在哪里使用名为“;冻结”;
- 如何将getJson的响应保存在全局变量中
- 如何使用 Angular JS 将数据保存在数据库中
- Ember.js-接口状态应该存储在哪里
- 在Redux中,我应该在哪里编写复杂的异步流
- 在哪里可以学习ECMAScript标准中尚未包含的JavaScript功能
- 在哪里可以找到RXUI Javascript'时间飞逝'实例
- Redux应用程序结构-在哪里放置服务/业务逻辑
- 在哪里可以找到'项目'在plothover函数中
- Javascript-在哪里放置常量,全局或本地
- Sequelize:这些方法应该驻留在哪里
- AJAX更新面板不;t工作.请帮我找出我错在哪里.
- ForerunnerDB将其数据库保存在哪里
- 在Angular应用程序中,持久数据应该保存在哪里
- 为本地HTML文件保存的cookie在哪里
- javascript在哪里存储变量,保存多长时间?
- 如何以及在哪里保存上传的文件与ng-flow
- 自定义AngularJS指令的部分应该保存在哪里?
- Redux重载:我应该在哪里执行多个文件的下载并保存到FS
- msSaveBlob任意路径/保存在哪里