【问题标题】:Create and write to a file with javascript使用 javascript 创建和写入文件
【发布时间】:2013-08-08 04:37:02
【问题描述】:

在客户端我想:

  1. 生成最大指定大小的随机数据(例如:1Mb 或 512Kb)。

  2. 将该数据写入文件。

  3. 使用 AJAX 请求将该文件发布到我的服务器上的端点。

我知道#1 是可能的,但我不知道该怎么做。我不确定#2 是否可行;我听说 Chrome 目前支持完整的 HTML5 文件 API,但我需要一个也适用于移动浏览器(iOS Safari、Android 等)的解决方案。 #3 很简单,我已经知道怎么做(我把它包括在内是为了清楚我想要做什么)。

【问题讨论】:

  • 定义“将数据写入文件”——您是想将该文件存储在客户端的文件系统上,还是将数据作为类似文件的消息传输到服务器?
  • #3 怎么简单?您是否能够使用 JavaScript 从文件系统中成功发布任意文件?
  • 是否有需要写入文件的原因?您可以通过带有 AJAX 的 POST 传递任意数据(例如:字符串变量),而无需文件。
  • @Quentin 后者。我不想将文件保存到系统中。只需将其与发布请求一起发送即可。
  • @bfavaretto 我只是说我知道如何发送基本的 AJAX 请求。

标签: javascript file-upload


【解决方案1】:

我同意用post发送数据,但如果你真的想创建一个文件然后发送它,你应该阅读这个问题:

How to give a Blob uploaded as FormData a file name?

【讨论】:

  • 我从这个问题中得出的结论是,他们无法弄清楚如何跨浏览器进行操作。我忽略了什么吗?
  • 这取决于你认为什么是跨浏览器。例如在我们公司,我们不再支持 IE6+7。还有一些项目开发了很长时间,所以我们基本上是为 IE9-10 制作应用程序。看看:developer.mozilla.org/en-US/docs/Web/API/… Imho 任何支持 blob 的东西都应该能够在 post 中发送 blob。由于 IE10 能够使用 blob,因此对我来说这是跨浏览器技术。这是你的选择。
  • 您引用的线程讨论了设置 blob 的名称。这仅适用于 Chrome 和最新版本的 Firefox。
  • 是的,因为该线程中的问题本身就是该问题的解决方案。好吧,它与所有当前的浏览器都不兼容,但它可能很快就会出现 + 之前这里没有人提到过 blob 文件......你的意思是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-12
  • 2011-12-11
  • 2014-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-15
相关资源
最近更新 更多