POST文本数据作为表单中的文件

时间:2013-04-25 19:47:53

标签: html file-upload html-form html-form-post

是否可以从html表单中将一些XML数据作为文件输入类型的字符串POST。

案例是我有一个像

这样的表格
form action="target.php" method="post" enctype="multipart/form-data">
   <input type="file" name="file" id="file"><br>
   <input type="submit" name="submit" value="Submit">
</form>

我的javascript代码中有一些xml数据作为字符串,我希望从表单中发送该字符串,好像它是作为带有文件输入标记的文件上传

由于

1 个答案:

答案 0 :(得分:1)

如果您的浏览器支持XMLHttpRequest level 2和html5 FileApi,则可以执行以下操作

var xhr = new XMLHttpRequest;
var blob = new Blob([xmlString], {type:'text/xml'});
var data = new FormData();
data.append('file', blob, 'filename.xml');
xhr.open('POST',url, true);
xhr.send(data);

如果您的浏览器不支持这些api,那么您必须手动构建帖子正文

var xhr = new XMLHttpRequest();
xhr.open('POST', url, true);
var boundary = '----'+(new Date()).getTime();
xhr.setRequestHeader('Content-Type', 'multipart/form-data; boundary='+boundary);
var data = ['--'+boundary,
    'Content-Disposition: form-data; name="file"; filename="filename.xml"',
    'Content-Type: text/xml','',xmlString,'--'+boundary+'--',''].join('\r\n');
xhr.send(data);