繁体   English   中英

使用javascript中的表单发布将字符串上传为文件

[英]Upload a string as file using form post in javascript

我想在不使用文件输入的情况下伪造文件上传。 文件的内容是从字符串生成的。 即我想将一些字符串发布到内容类型为“ multipart / form-data”的服务器上。

但是该服务器具有不同的域,并且不支持CORS,因此无法使用XMLHttpRequest。 是否可以仅使用普通表单发布来执行此操作?

这实际上是一个很好的问题。 以我的拙见,由于以下各种原因,您无法找到所需的内容:

  • 您肯定可以拥有这样的HTML表单:

     <form ....> <input id="blah" type="input" name="nameblah" ..> ... </form> 

    但正如您所知,您实际上无法访问/修改所选文件的“内容”。 立即的解决方案是使用隐藏字段作为替代方案,并设置enctype=multipart/form-data ,但是对于隐藏字段,浏览器将不会设置适当的Content-Disposition头。

  • 您可能有一个AJAX调用,您可以在其中手动构建整个请求正文,但这已经是一个跨域调用。 应用通常的绕过技术。

解决方案是让提供HTML的服务器为您完成skydrive请求。 在这种情况下,您将使用HTML表单或javascript上传文件。 然后,该文件将“转发”到skydrive服务器。

如果您尝试使用Javascript,请确保正确获取multipart/form-data格式。 这是RFC

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM