使用Json发布文件

时间:2012-12-28 09:08:08

标签: javascript json base64 data-uri

我想使用json上传二进制文件。 我选择Json是因为我希望通过该文件发送更多信息。

我将通过 -

来做到这一点
  1. 在文件输入标记中选择一个文件。
  2. 使用HTML5文件阅读器Api首先读取文件。
  3. 将文件内容转换为base64。
  4. 以数据uri格式将base64内容添加到JS对象。
  5. 将JS对象转换为json并将其发布到服务器。
  6. 我想知道这是否是实现目标的唯一合法途径?另外,如果某个地方已经有一个插件可以提供这种能力吗?

1 个答案:

答案 0 :(得分:0)

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

请参阅W3C documentation on the subject

  

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

     

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

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