使用Json发布文件
Posting a file using Json
我想用json上传一个二进制文件。我选择Json,因为我还想在文件中发送额外的信息。
我将通过-
- 在文件输入标签中选择文件。
- 使用HTML5 File Reader Api先读取文件
- 将文件内容转换为base64格式
- 将base64内容以data uri格式添加到JS对象中。
- 将JS对象转换为json并将其发送到服务器。
我想知道这是否是实现我的目标的唯一合法的方法?此外,如果有一个插件已经可用的地方给我这种能力?
不,这不是唯一的方法——另外一种方法是提交一个包含文件的表单。此表单使用multipart/form-data
内容类型。
参见W3C文档:
内容类型"
application/x-www-form-urlencode
d"对于发送大量的二进制数据或包含非ascii字符的文本是低效的。内容类型"
应该用于提交包含文件、非ascii数据和二进制数据的表单。multipart/form-data
";
所以,没有必要重新发明轮子——浏览器已经支持以一种简单的方式发送文件和附加信息。您只需创建一个表单,用户可以在其中输入数据和选择文件,然后所有这些都以multipart/form-data
内容类型发送到服务器,并且您的web框架应该能够理解它处理文件和文本数据。
相关文章:
- 使用Tabris-js,并尝试使用cordova文件和文件传输插件
- 使用ajax获取通过FTP上传的文件的文件大小——试图防止ajax中断自身
- 找不到Intel XDK cordova文件api 1.3.3文件
- 拖动'n将树项目作为文件放到文件夹中
- 仅为文本文件筛选文件上载
- JavaScript 文件或文件夹查找和导入
- 查看由 java 脚本文件上传器选择的文件的文件内容
- 使用Javascript将多个文件下载为zip文件或文件夹
- JavaScript文件的文件权限
- AJAX/JS/PHP:如何替换发送到PHP文件的文件中的文本,并传递成功属性
- 如何使用javascript创建新的文件夹/文件
- 已从'上传文件;文件'img字段中未显示类型输入字段
- 应用程序脚本-自动从谷歌驱动器删除超过3天的文件-获取文件列表
- 输入类型文件将文件路径添加到范围
- php文件上传返回文件和文件路径的有效性
- 文件选择/文件API-将文件发送到嵌入式PDFObject
- 如何使用PHP从我自己的网站上的Google Drive获取文件和文件夹列表
- 如何将Javascript文件(.js文件)放在web服务器中
- 如何将 JavaScript 文件(.js 文件)添加到 C# 项目并从 C# 代码调用 JavaScript 方法
- 如何将 Base64 文件转换为 javascript 中的实际文件/原始文件并将其下载到客户端