2

是否可以将一些 XML 数据作为字符串作为来自 html 表单的文件输入类型发布。

情况是我有一个像

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 数据作为字符串,我想从表单中发送该字符串,就好像它作为带有文件输入标签的文件上传一样

谢谢

4

1 回答 1

2

如果您的浏览器支持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);
于 2013-04-26T16:12:38.457 回答