国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【學習記錄21】Vue+ElementUI el-upload多文件上傳,一次請求上傳多個文件!

這篇具有很好參考價值的文章主要介紹了【學習記錄21】Vue+ElementUI el-upload多文件上傳,一次請求上傳多個文件!。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前情回顧說點廢話。。。

1、項目當中遇到需要上傳多個圖片,一次選取多個圖片。但是吧el-upload默認只能一個一個傳,每次上傳成功還的自己去push,一個一個去判斷。

2、關鍵是后臺給的接口,要一次性接收一堆,無奈之下只能去網上搜索,大佬們都是給的代碼片段無法直接使用。

3、經過各種搬運后實現了效果,閑下來就想著自己寫一下我最后在代碼中實現方法吧。大家共同學習進步,我也鞏固一下知識點!有問題的地方歡迎各位大佬指正!

話不多說直接擼代碼?。?!

html部分

//  :auto-upload="false"    這一句必須加上,阻止默認上傳事件     
//  :http-request="BSuploadFile"   上傳到服務器的方法
//  :before-upload="beforeUpload" 上傳到服務器前校驗文件,選擇文件的時候不校驗,點擊“上傳到服務器”調用upload()方法的時候執(zhí)行
//  :on-preview="handlePictureCardPreview"  預覽圖片
//  :on-remove="BShandleRemove"  刪除圖片
//  :on-change="changeFileLength"  選擇文件后執(zhí)行
//  multiple
//  :file-list="BSfileList"
<el-upload
              list-type="picture-card"
              class="upload-demo"
              action=""
              ref="upload"
              :auto-upload="false"
              :http-request="BSuploadFile"
              :before-upload="beforeUpload"
              :on-preview="handlePictureCardPreview"
              :on-remove="BShandleRemove"
              :on-change="changeFileLength"
              multiple
              :file-list="BSfileList">
              <i class="el-icon-plus"></i>
              <div slot="tip" class="el-upload__tip">
                只能上傳jpg/png文件,且不超過1Mb
                <el-button @click="upload" type="success">上傳到服務器</el-button>
              </div>
</el-upload>

?喏,沒選擇文件的時候就是下面的樣子

?elementui upload上傳多個文件,前端,vue,vue.js,elementui,前端,el-upload

?選完文件以后是下面的樣子

elementui upload上傳多個文件,前端,vue,vue.js,elementui,前端,el-upload

js部分

// 上傳到服務器前的校驗
beforeUpload(file) {
        console.log('上傳前:',file)
// 打印出來看一下格式,file流有時候在file.raw中
        if (file&&file.type) {
          const isJPG = (file.type === 'image/jpeg' || file.type === 'image/png' || file.raw.type === 'image/jpeg' || file.raw.type === 'image/png');
          const isLt1M = file.size / 1024 / 1024 < 1;

          if (!isJPG) {
            this.$message.error('上傳頭像圖片只能是 JPG、PNG 格式!');
          }
          if (!isLt1M) {
            this.$message.error('上傳頭像圖片大小不能超過 1MB!');
          }
          return isJPG && isLt1M;
        } else {
          this.$message.error('文件格式錯誤,請檢查!');
          return false
        }

},
// 選擇文件,修改當前文件列表長度后
changeFileLength(singleFile, fileList){
        console.log('修改當前文件', singleFile, fileList)
        this.filesLength = fileList.length
        this.BSfileList = fileList
},
// 用戶點擊上傳調用
async upload(){
        console.log('點擊上傳')
        // 觸發(fā)上傳 調用配置 :http-request="BSuploadFile"
        // 即觸發(fā) uploadFile函數
        await this.$refs.upload.submit();
        // 上傳完成后執(zhí)行的操作 ...
},
// 自定義上傳文件,也就是上傳到服務器的方法
BSuploadFile(param) {
        console.log('開始上傳')
       

        // 當BSfileList長度等于用戶需要上傳的文件數時進行上傳
        if (this.BSfileList.length == this.filesLength){
          // 創(chuàng)建FormData上傳
          let fd = new FormData()
          // 將全部文件添加至FormData中
          this.BSfileList.forEach(file => {
            // 第一個參數可改,看后臺接口接收什么就改成什么。
            // 第二個參數,是沒一個文件的文件流,有時候是file,有時候是file.raw
            // 打印出來,根據時間情況來傳入。我也不知道為什么,可能是elm版本封裝的json格式不一樣
            fd.append('file', file.raw)  
          })
          // 配置請求頭,基本上所有上傳文件用的都是form-data類型
          const config = {
            headers: {
              "Content-Type": "multipart/form-data",
            }
          }
          // 上傳文件,看自己怎么用,沒封裝過ajx就用全局axios
          // this.axost.post("/abc/upload", fd, config).then(res => {
          multipleTbrandCultureFile(fd, config).then(res => {
            /*上傳成功處理*/
            console.log(res)
            this.form.abcFiles = res.data
          }).catch(err => {/*報錯處理*/});
        }
}

改進

實踐出真理,在使用中發(fā)現的問題,上面的寫法,校驗只會出現彈窗,功能不對,優(yōu)化后的代碼如下。文章來源地址http://www.zghlxwxcb.cn/news/detail-517893.html



// 自定義上傳文件,也就是上傳到服務器的方法
BSuploadFile(param) {
    console.log('開始上傳')

    // 在此處加上校驗
    // 刪除html中的:before-upload="beforeUpload"
    const isgo = this.beforeUpload(file.file)
    if (isgo) {

        // 當BSfileList長度等于用戶需要上傳的文件數時進行上傳
        if (this.BSfileList.length == this.filesLength){
          // 創(chuàng)建FormData上傳
          let fd = new FormData()
          // 將全部文件添加至FormData中
          this.BSfileList.forEach(file => {
            // 第一個參數可改,看后臺接口接收什么就改成什么。
            // 第二個參數,是沒一個文件的文件流,有時候是file,有時候是file.raw
            // 打印出來,根據時間情況來傳入。我也不知道為什么,可能是elm版本封裝的json格式不一樣
            fd.append('file', file.raw)  
          })
          // 配置請求頭,基本上所有上傳文件用的都是form-data類型
          const config = {
            headers: {
              "Content-Type": "multipart/form-data",
            }
          }
          // 上傳文件,看自己怎么用,沒封裝過ajx就用全局axios
          // this.axost.post("/abc/upload", fd, config).then(res => {
          multipleTbrandCultureFile(fd, config).then(res => {
            /*上傳成功處理*/
            console.log(res)
            this.form.abcFiles = res.data
          }).catch(err => {/*報錯處理*/});
        }

    }
}


到了這里,關于【學習記錄21】Vue+ElementUI el-upload多文件上傳,一次請求上傳多個文件!的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • elementUI+el-upload 上傳、下載、刪除文件以及文件展示列表自定義為表格展示

    elementUI+el-upload 上傳、下載、刪除文件以及文件展示列表自定義為表格展示

    官方文檔 https://element.eleme.cn/#/zh-CN/component/upload 具體參數說明,如何實現上傳、下載、刪除等功能 action :文件上傳地址,我的項目里已經封裝好了請求。使用的時候需要依據項目填寫。 show-file-list : 是否顯示已上傳文件列表。 headers :設置上傳的請求頭部。我的項目需要傳

    2024年01月20日
    瀏覽(99)
  • vue 使用 el-upload 上傳文件(自動上傳/手動上傳)

    vue 使用 el-upload 上傳文件(自動上傳/手動上傳) 上傳 上傳

    2024年02月13日
    瀏覽(110)
  • vue+el-upload(封裝華為云OBS上傳文件)前端直傳

    vue+el-upload(封裝華為云OBS上傳文件)前端直傳

    注釋:代碼中###是需要填寫自己東西的 以上代碼為封裝的組件代碼,需要引入父組件后調用配置 下面圖為組件調用,注冊跟引入就不用我多說了吧,不會的自行百度 注:華為云前端直接上傳的話會出現跨域報錯,把華為云OBS CORS跨域規(guī)則設置一下 我設置的規(guī)則全部打開了

    2024年02月05日
    瀏覽(109)
  • 【前端相關】elementui使用el-upload組件實現自定義上傳

    【前端相關】elementui使用el-upload組件實現自定義上傳

    elmentui 中的upload默認的提交行為是通過 action 屬性中輸入的 url 鏈接,提交到指定的服務器上。但是這種url提交文件的方式,在實際的項目環(huán)境中往往是不可取的。 我們的服務器會攔截所有的請求,進行權限控制,密鑰檢查,請求頭分析等安全行為控制。寫在這里的url無法實

    2024年02月08日
    瀏覽(28)
  • elementUI 的上傳組件<el-upload>,自定義上傳按鈕樣式

    elementUI 的上傳組件<el-upload>,自定義上傳按鈕樣式

    原理:調用el-upload組件的方法喚起選擇文件事件 效果: 頁面代碼: js代碼:(其他邏輯與element文檔的上使用一致) css代碼: 隱藏原來的選擇圖片按鈕 原理:把圖片顯示分離出來,el-upload做選擇圖片使用,單獨做一個顯示圖片的區(qū)域 效果: ?頁面代碼: js 代碼: css代碼:

    2024年02月13日
    瀏覽(25)
  • vue element el-upload附件上傳、在線預覽、下載當前預覽文件

    vue element el-upload附件上傳、在線預覽、下載當前預覽文件

    上傳 在線預覽(iframe): payload: response: 全部代碼: 初版–01

    2024年02月14日
    瀏覽(37)
  • ElementUi 關于 el-upload的自定義上傳(http-request)的使用

    ElementUi 關于 el-upload的自定義上傳(http-request)的使用

    ?? 在開發(fā)中 遇到如下需求,要求前端傳參并導入excel表格。導入失敗,要彈出錯誤信息,同時導出錯誤信息的excel表格,導入成功提示信息即可。 參考官方文檔,把上傳需要的屬性加加入使用 ? 改造之前: 設置headers信息 在el-upload標簽中加入http-request ,如下: 具體操作方法

    2024年02月01日
    瀏覽(21)
  • vue3 el-upload 上傳附件及預覽 限制只能上傳一個圖片或者pdf格式的文件

    vue3 el-upload 上傳附件及預覽 限制只能上傳一個圖片或者pdf格式的文件

    效果如圖 直接看代碼吧 template部分 css部分 js部分

    2024年02月11日
    瀏覽(103)
  • el-upload調用內部方法刪除文件

    el-upload調用內部方法刪除文件

    從Element UI 的官方文檔中,?Upload 上傳組組件提供了on-remove和before-remove的文件刪除的鉤子屬性(回調方法名),但如何調用組件刪除方法(讓該方法刪除本地上傳文件列表以及觸發(fā)這兩個鉤子)并無相關說明。 在不定義file插槽(slot)的情況下,通過UI點擊控件文件列表上文件的

    2024年02月10日
    瀏覽(20)
  • el-upload實現上傳文件夾

    el-upload實現上傳文件夾

    背景:如圖一所示,最下面有一個黃色上傳文件按鈕,為手動上傳而且上傳區(qū)域有上傳文件和上傳文件夾的區(qū)分 所以需要在點擊了上傳文件夾做特殊處理使得el-upload可以上傳文件夾 01.在拖拽上傳的區(qū)域綁定一個點擊事件 handlePreview ,(注意不要直接綁定在el-upload區(qū)域,會被觸

    2024年02月07日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包