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

相關文章
相關標籤/搜索