在javascript中使用表单帖子将字符串作为文件上传
Upload a string as file using form post in javascript
我想在不使用文件输入的情况下伪造文件上传。文件的内容是从字符串生成的。即我想将一些字符串发布到内容类型为"多部分/表单数据"的服务器。
但是服务器具有不同的域并且不支持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
相关文章:
- 如何在JS文件中获取资源(.resx)字符串
- 使用JSON文件中的变量(字符串)填充文本区域
- 将HTML(支持文件)中的令牌(字符串、数字等)传递给LogiXML
- node.js将字符串转换为要上传到Web服务器的文件
- 将大数组(字符串和类型数组的混合物)存储到blob或文件中/从blob或文件检索大数组的最佳方式
- 从表单中动态生成一个字符串,传递给通过AJAX加载的PHP文件
- 将文件的内容读取为Javascript中的字符串
- 使用JavaScript将压缩文本文件加载到字符串中
- 使用gulp-angular gettext从JS文件中提取字符串不起作用
- 将字符串文件类型/权限转换为数字
- 我可以在两个javascript文件之间传递一个字符串吗?
- 为什么我在 webpack 中需要 html 文件时会得到一个位置字符串
- 如何将JS字符串解释为文件或在Bundlebars中使用字符串
- 为什么不是'当试图使用Ajax和外部PHP文件发布内容时,我的表单工作不正常,该文件接收两个字符串
- 解析CSV文件中的字符串
- 传递字符串的普通$.post()和传递文件的有什么区别
- 通过php文件替换多个字符串
- Eclipse Phonegap无法使用jquery.load函数加载外部字符串文件
- JS-html5文件阅读器API-获取二进制字符串文件并通过ajax发送
- 将字符串文件路径从子窗口传递到asp.net中的打开器:如何防止反斜杠被删除