使用Json发布文件

Posting a file using Json

本文关键字:文件 布文件 Json 使用      更新时间:2023-09-26

我想用json上传一个二进制文件。我选择Json,因为我还想在文件中发送额外的信息。

我将通过-

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

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

不,这不是唯一的方法——另外一种方法是提交一个包含文件的表单。此表单使用multipart/form-data内容类型。

参见W3C文档:

内容类型"application/x-www-form-urlencode d"对于发送大量的二进制数据或包含非ascii字符的文本是低效的。

内容类型"multipart/form-data";

应该用于提交包含文件、非ascii数据和二进制数据的表单。

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