1

我想使用 json 上传二进制文件。我选择 Json 是因为我还想通过该文件发送其他信息。

我将通过 -

  1. 在文件输入标签中选择一个文件。
  2. 首先使用 HTML5 File Reader Api 读取文件。
  3. 将文件内容转换为base64。
  4. 将 base64 内容添加到数据 uri 格式的 JS 对象中。
  5. 将 JS 对象转换为 json 并发布到服务器。

我想知道这是否是实现我的目标的唯一合法方式?另外,如果某个地方已经有一个插件可以给我这种能力?

4

1 回答 1

0

不,这不是唯一的方法 - 其他方法之一就是提交一个包含文件的表单。这种形式使用multipart/form-data内容类型。

请参阅有关该主题的 W3C 文档

内容类型“ application/x-www-form-urlencoded”对于发送大量二进制数据或包含非 ASCII 字符的文本效率低下。

内容类型“ multipart/form-data”应用于提交包含文件、非 ASCII 数据和二进制数据的表单。

因此,无需重新发明轮子 - 浏览器已经支持以简单的方式发送文件以及附加信息。您只需创建一个表单,用户可以在其中输入数据并选择文件,然后所有这些都以内容类型发送到服务器multipart/form-data,您的 Web 框架应该能够理解它同时处理文件和文本数据。

于 2012-12-28T09:15:39.740 回答