是否可以从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数据作为字符串,我希望从表单中发送该字符串,好像它是作为带有文件输入标记的文件上传
由于
答案 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);