ajax上传文件不能和其他数据一起吗?

比如,我有一个表单页,需要填tit,tel以及上传的文件

<div class="box">
    <input type="text" value="标题" name="tit" class="tit">
    <input type="text" value="联系方式" name="tel" class="tel">
    <input type="file" multiple="multiple" value="" name="file" class="file">
    <div class="sub-btn">提交</div>
</div>
<script>
var tit=document.querySelector(".tit").value,
    tel=tit=document.querySelector(".tit").value,
    file=document.querySelector(".file"),
    btn=document.querySelector(".sub-btn"),
    xhr=new XMLHttpRequest(),
    data={
        tit:tit,
        tel:tel,
        file:null
    },
    _file=new FormData()
    ;
 btn.onclick=function(){
     //先测试1个文件;
     file.files[0].formEnctype = "multipart/form-data";
     _file.append("file", file.files[0]);
     data.file=_file;
     xhr.open("post","http://10.10.1.110/getInfo.do");
     xhr.send(data);//----A处
 }
</script>

在chrome network中看request playload 中显示的是 [object object],并不是

------WebKitFormBoundaryBcQMnHoeJT0GafEe
Content-Disposition: form-data; name="file"; filename="xxx.zip"
Content-Type: application/octet-stream
------WebKitFormBoundaryBcQMnHoeJT0GafEe--

这类信息。

是上传文件必须和传递其他文本数据分开吗,还是我的方法使用错误?

阅读 4.4k
3 个回答

已解决
紫薯布丁

不需要分开传的 你看到的是由于你使用了 new FormData()

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题