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