欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

JavaScript

當前位置:主頁 > 網(wǎng)絡(luò)編程 > JavaScript >

原生js實現(xiàn)文件上傳、下載、封裝等實例方法

來源:本站原創(chuàng)|時間:2020-01-10|欄目:JavaScript|點擊: 次

一 、下載

1、代碼

const fileDownloadClick = (obj) => { // 解決兼容
 if( document.all ){
  obj.click();
 } else {
  let event = document.createEvent("MouseEvents");
  event.initEvent('click', true, true);
  obj.dispatchEvent(event);
 }
}
const fileDownload = (res,obj) => { // 下載
  /*
  obj :{
   userName  下載人
   weeklyTime 下載時間
   weeklyType 下載類型 
  }
 */ 
 let blob = new Blob([res]);
 let url = window.URL.createObjectURL(blob);
 let link = document.createElement('a');
 link.style.display = 'none';
 link.href = url;
 link.setAttribute('download', `${obj.userName || ' '}_${obj.weeklyTime || dateFormatYMD(new Date())}_${obj.weeklyType || '.xlsx' }`);
 document.body.appendChild(link);
 // link.click();
 fileDownloadClick(link);
 window.URL.revokeObjectURL(url);
}

2、請求時,需增加請求頭

responseType: 'blob',

3、使用

res: 后臺返回的文件流( 類似于亂碼的東西 )
obj:下載文件名稱

//頁面中調(diào)用
this.fileDownload = (res,obj)

二、上傳 ( 基于vue )

1、頁面使用

<input type="file" ref="upload" @change='handleUploadChange($event)' style="display:none;">



 handleUploadFile(row){ // 通過某一事件觸發(fā) 
  this.$refs['upload'].click();
 },
 
 

  async handleUploadChange(e){ // 
   try{
    let res = await this.CommonUpload(e);
    if(res.code == '200'){ // 獲取其他code值,根據(jù)后臺來定
      this.handleProjectAddFile(res.data)
    }else{}
   }
    catch(err){}
  }

2、方法封裝 ( 只判斷大小,也可通過accept判斷要接收的類型 等其他類型 )

CommonUpload(e){ 
    const files = e.target.files;
    let formData = new FormData();
    if(files && files[0]) {
      const file = files[0];
      if(file.size > 1024 * 1024 *3) {
        alert('文件大小不能超過3M');
        return;
      } else {
        formData.append("multipartFile", file); 
      }
    }
    this.uploadFile_(formData) // 為調(diào)用上傳接口方法
  }

3、問題 當再次選擇同一文件時,失效

解決: ( 上傳后執(zhí)行下面 )
this.$refs['upload'].value = ''; // 解決 input file 第二次失效的問題

原因:
input file value值為新選中的值,所以下次再選同一文件,不會觸發(fā)change事件

以上就是本次介紹的全部相關(guān)知識點,如果有任何疑問和補充大家可以聯(lián)系小編,感謝大家對我們的支持。

上一篇:Vue學(xué)習(xí)之組件用法實例詳解

欄    目:JavaScript

下一篇:借助云開發(fā)實現(xiàn)小程序短信驗證碼的發(fā)送

本文標題:原生js實現(xiàn)文件上傳、下載、封裝等實例方法

本文地址:http://mengdiqiu.com.cn/a1/JavaScript/9297.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負任何責任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有