中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在antd組件中使用Upload實現自己上傳

發布時間:2021-06-04 16:35:49 來源:億速云 閱讀:706 作者:Leah 欄目:web開發

這篇文章給大家介紹怎么在antd組件中使用Upload實現自己上傳,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

//添加按鈕的樣式
const uploadButton = (
  <div>
  <Icon type="plus" />
  <div className="ant-upload-text">Upload</div>
  </div>
 );


<Upload
    //樣式
    className={styles['override-ant-btn']}
    //陳列樣式,現在是卡片式
    listType="picture-card"
    //再圖片上傳到頁面后執行的函數,自定義讓他不執行
    beforeUpload={() => false}
    //數據,即圖片,是一個數組
    fileList={fileList}
    //當點擊查看時調用(上圖的那個眼睛)
    onPreview={this.handlePreview}
    //數據改變時調用
    onChange={this.handleChange}
   >
    //當不少于一張圖時,不顯示怎加圖片的按鈕。
    {fileList.length >= 1 ? null : uploadButton}
   </Upload>

還有一個移除時調用的函數onRemove(),即點擊上圖的垃圾桶,這里沒有定義。

 handlePreview = (file) => {
 this.setState({
  previewImage: file.url || file.thumbUrl,
  visible: true,
 });
 };


  <Modal visible={visible} footer={null} onCancel={this.handleCancel}>
    <img alt="加載" style={{ width: '100%',height: '100%' }} src={previewImage} />
  </Modal>

利用Modal顯示圖片。

handleChange = ({ fileList }) => {
 this.setState({ fileList });
};

數據改變時直接重設fileList數組的值(我這里只有一張圖可以這么做)。

最后是fileList的一些基本設置:

fileList: [{
   uid: 'id',
   name: '標題',
   //目前的狀態
   status: 'done',
   //圖片的url或者base64
   url: '',
   type: 'image/jpeg',
  }],

PS:基于antd的上傳文件進度條

核心代碼

//通過前端原生XMLHttpRequest動態獲取上傳文件進度
doTransferFile = (file) => {
 let mySelf = this;
 let formData = new FormData();
 let url = "http://xxx:444/upload_file.php";
 let file = document.getElementById("chooseFile").files[0];
 console.log(file)
 
 formData.append("file",file);
 // console.log(modal);
 // console.log(formData);
 // return false;
 /* eslint-disable */
 $.ajax({ 
  url : url, 
  type : 'POST',
  enctype: 'multipart/form-data',
  data : formData, 
  // 告訴jQuery不要去處理發送的數據
  processData : false, 
  // 告訴jQuery不要去設置Content-Type請求頭
  contentType : false,
  timeout : 60000,//設置超時時間
  beforeSend:function(){
   console.log("現在開始上傳文件!");
 notification['info']({
 message: '提示',
 description: '現在開始上傳文件!',
 });
  },
  xhr: function(){
 let myXhr = $.ajaxSettings.xhr();
 // console.log(myXhr)
 if(myXhr.upload){
 myXhr.upload.addEventListener('progress',function(e) {
  if (e.lengthComputable) {
  let percent = Math.floor((e.loaded/e.total)*100);
  // console.log(e.loaded)
  // console.log(e.total)
  console.log(percent)
  let upload = mySelf.state.upload;
  upload.progress.loaded = e.loaded;
  upload.progress.total = e.total;
  upload.progress.percentage = percent;
  mySelf.state.upload = upload;
 
  // console.log(info);
   mySelf.setState({
    upload: upload
   });
  }
 },false);
 
 myXhr.upload.addEventListener('load',function(e) {
  console.log('fish')
 },false);
 
 }
 return myXhr;
  },
  success : function(res) {
   console.log(res)
 
  }, 
  error : function(res) { 
 
  } 
 });
};

關于怎么在antd組件中使用Upload實現自己上傳就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

康保县| 田林县| 普陀区| 仲巴县| 得荣县| 成安县| 汨罗市| 塔河县| 喜德县| 宁乡县| 黄浦区| 古丈县| 红原县| 岚皋县| 定边县| 麻阳| 芷江| 耿马| 房山区| 博野县| 湾仔区| 江川县| 怀化市| 云阳县| 淮北市| 锡林郭勒盟| 灵山县| 时尚| 江油市| 承德市| 浏阳市| 武强县| 定陶县| 温宿县| 禹州市| 米脂县| 农安县| 临泉县| 栾川县| 富顺县| 湟中县|