Ant Design Vue 中 upload 遇到的坑


  最近項目在使用ant design vue 的時候,使用了a-upload 上傳圖片。 但是遇到了不少問題,在此總結一下。

  問題1. 上傳圖片后,鼠標懸浮或出現代碼錯誤提示 “405 Not Allowed”

  處理方法: 查了一下,參考了這篇文章 https://blog.csdn.net/Y_G_G/article/details/108105884。結合本地的代碼看了一下,將原來的change事件上傳修改為了使用 customRequest 自定義事件。問題得以解決。

  不過,處理完之后也確實遇見了文件狀態一直處於uploading 的問題。這里我將上傳方法單獨抽取了出來,所以執行上傳,在axios能正常返回存儲路徑后,則修改文件狀態

      

//修改status
options.onSuccess(res, options.file)

這樣能暫時處理掉一直顯示uploading狀態的問題。

  問題2:點擊上傳圖片后無反應 。修改前代碼:

//默認change方法 
handleChange (info) {
      if(info.file.status == "done"){
        this.fileList = info.fileList;
      }
    }

a-upload上使用了customRequest 自定義方法,同樣也綁定了change方法,因為調用完customRequest方法,會繼續調用change方法,所以打算執行完customRequest上傳后,通過change方法對fileList進行賦值,回顯剛上傳的圖片。

   處理:  檢查后發現,之前在change方法中對status進行了判斷,在執行上傳時(使用axios)文件的狀態一直是uploading。在axios未返回結果之前,就調用了change方法,但是change方法中判斷只有status為done時,才會進行fileList的賦值,實際的操作中回發現,這樣即使是在最后status為done時,也不會再進入到handleChange這個方法。

        這個時候就需要用到上面說的,對文件上傳轉態進行修改。在路徑返回后,在change方法中不有需要再對status進行判斷,直接fileList賦值就可以了。

handleChange(info){
  this.fileList = info.fileList;  
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM