我的应用程序允许用户上传的唯一文件是图像,它们始终作为表单中唯一的输入字段上传。因此,multipart 是不必要的,而且我可以在没有 multipart 解析器的情况下更轻松地使用文件。
如何使用 AJAX 和 vanilla Javascript 在不使用 multipart 的情况下上传文件?此外,它通常应该支持所有浏览器的最新版本。
最佳答案
您可以简单地通过 XHR 级别 2 发送关联的文件或 Blob 本身。例如,在我维护的上传库 ( Fine Uploader ) 中,您可以选择以多部分编码的 POST 请求(所有浏览器)或非MPE 请求(仅限支持文件 API 的浏览器)。
要在 MPE POST 请求中发送文件,您可能已经知道,您必须将文件添加到 FormData 对象并通过 XHR2 发送,或者提交包含文件输入的表单。如果您想在非 MPE POST 请求中上传文件,只需执行以下操作:
xhr.send(file);
当然,这只能在支持 File API 的浏览器中完成。此外,如果您想随文件一起发送任何参数,则必须将它们包含在查询字符串中。
关于javascript - 如何在不使用 multipart 的情况下使用 AJAX 上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16605263/