Ajax异步图片/文件上传的实现_利用FormDa

巧技
QiaTia
2年前
1

在前后分离开发中,经常会遇到上传文件的情况,后端会有一个文件上传接口,通过ajax上传成功后返回图片地址url给前端。然后在把url和其他数据以前提交给后端保存到数据库。那么如何实现ajax异步文件上传功能呢?下面就介绍下利用FormData对象的实现方案。


Html代码:

<input type="file" name="file" id="imgUrl" onclick="upload()"/>


js代码:

function upload(){
    var file=document.getElementById("imgUrl").files[0];
    var form=new FormData();
    form.append('file',file);//文件
    ajax({ 
        url: _url,
        type: 'post', 
        async:true,//同步
        success: function(r){  
            //成功后代码
        },
    ); 
}

备注:

1、如今主流浏览器都开始支持一个叫做FormData的对象,有了这个FormData,我们就可以轻松地使用Ajax方式进行文件上传。

2、在ajax中content-type不要传递:'application/x-www-form-urlencoded' 或者 'application/json;charset=UTF-8',不要传默认为:multipart/form-data。

  • QiaTia1年前
    PHP后台直接可以使用post接受到$file的文件流,就按照表单接收的方式进行接受, 但是注意区分, 由于是单独传过来的