JS 传各类文件到后端

因为要写一个前端上传文件按钮功能,本人前端是小白,因此在网上搜索了许多,发现FileReader很是好用。前端

很少BB,直接来。ajax

1,前端只须要一个input标签,json

<input type="file" id="file" >

 

2,JS,很简单后端

    $("#file").bind("change",function () {
        var fileinfo = document.getElementById("file").files[0];
        var reader = new FileReader();
        reader.readAsDataURL(fileinfo);
        reader.onload = function(){
            //console.log(reader.result);
        };
    })

 

3,选择了readerAsDataURL 方法 读取数据,由于试过其余方式,发现其余方式获取数据后在传到后端时,容易引发浏览器崩溃。浏览器

 

4,因为readerAsDataURL方法,获取的返回值,并非彻底的数据,而是加了一些前缀。post

data = reader.result.split(",")[1]  # 这样才是完整的数据

 

5,使用ajax发送数据:url

jQuery.ajax({
          dataType:"json",
          data:JSON.stringify({"fileinfo":data,"name":filename,"path":path,}),
          url:"/task/getfile/",
          type:"post",
          cache:false,
          processData:false,
          contentType:false,
          success:function (data) {
          if(data.status==0){
          document.getElementById("text_info").innerText = "文件成功上传!"
         }else{
          document.getElementById("text_info").innerText = "文件上传失败!"
       }
      },
  });

 

6,后端接受数据就OK。因为readAsDataURL将文件转为了base64格式,因此后端只须要转回去就OK了.spa

7,打开文件(文件名后缀要一致!一致!一致!) ,f.write  都会,就不写了。code

8,而后就成功了。blog

相关文章
相关标签/搜索