最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

element-ui 中使用upload多文件上傳只請求一次接口

 更新時間:2019年07月19日 09:48:22   作者:菜鳥小N  
這篇文章主要介紹了element-ui 中使用upload多文件上傳只請求一次接口,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

方法一

不使用組件內(nèi)部的鉤子

<el-upload
 class="upload-image"
 ref="upload"
 multiple
 :action="baseUrl"
 list-type="picture"
 :auto-upload="false"
 accept="image/*">
 <el-button slot="trigger" size="small" type="primary">選取文件</el-button>
 <el-button size="small" type="success" @click="submitUpload">上傳到服務(wù)器</el-button>
 <div slot="tip">只能上傳jpg、png、gif 格式,大小不超過500KB的圖片</div>
</el-upload>

js

點擊上傳服務(wù)器的按鈕時調(diào)用這個函數(shù),也就是說不走upload的鉤子,不調(diào)用他的方法自己搞

  submitUpload () {
   let { uploadFiles } = this.$refs.upload
   let form = new FormData()
   let status = true
   // 在這里對每一張圖片進(jìn)行大小的校驗,如果不符合則提示,所有不符合的都提示,校驗完成后只要有不符合條件的就不執(zhí)行下面的操作
   uploadFiles.forEach(item => {
    const size = item.raw.size / 1024 <= 500
    if (!size) {
     this.$message.error(`${item.raw.name}大小超過500KB`)
     status = false
     return
    }
    form.append('image[]', item.raw)
   })
   if (!status) {
    return
   }
   // 符合條件后再將這個FormData對象傳遞給后端
   //調(diào)取接口上傳form參數(shù)
   
 }

方法二

使用內(nèi)部的回調(diào)去獲取對應(yīng)的

<el-upload
 class="upload-image"
 ref="upload"
 multiple
 :action="baseUrl"
 list-type="picture"
 :auto-upload="false"
 :before-upload="beforeImageUpload"
 :http-request="ImageRequest"
 accept="image/*">
 <el-button slot="trigger" size="small" type="primary">選取文件</el-button>
 <el-button size="small" type="success" @click="submitUpload">上傳到服務(wù)器</el-button>
 <div slot="tip">只能上傳jpg、png、gif 格式,大小不超過500KB的圖片</div>
</el-upload>

js

beforeImageUpload (file) { // 上傳文件前的鉤子對文件進(jìn)行校驗
  const size = file.size / 1024 < 500
  if (!size) {
   this.$message.error('上傳圖片大小不能超過 500KB!')
  }
  return size
}

上傳前鉤子返回false之后給文件就不會再往下執(zhí)行下面的鉤子了

因此在http-request的鉤子就不會被執(zhí)行,在該鉤子中獲取到的都是通過校驗的file文件的信息

ImageRequest (file) {
  this.formData.append('image[]', file.file)
}

此時在這個formData 中的數(shù)據(jù)就是通過校驗的數(shù)據(jù)

submitUpload () {
  this.formData = new FormData()
  // 手動觸發(fā)上傳
  this.$refs.upload.submit()
  // 此時所有的鉤子已經(jīng)執(zhí)行完了formData 中存的是通過校驗的數(shù)據(jù)
  // 此時在調(diào)用接口上傳該數(shù)據(jù)
}

該方法在使用時不符合條件的文件會自動刪除只留下符合條件的

可能是before-upload這個鉤子的原因不符合之后他會去調(diào)用刪除的鉤子

因此使用方法一比這個要好很多

該方法節(jié)省了我們自己寫樣式以及預(yù)覽,組件都幫你干了,你只要寫邏輯就好啦

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue如何動態(tài)設(shè)置class、動態(tài)設(shè)置style

    vue如何動態(tài)設(shè)置class、動態(tài)設(shè)置style

    這篇文章主要介紹了vue如何動態(tài)設(shè)置class、動態(tài)設(shè)置style,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 詳解在vue-cli項目下簡單使用mockjs模擬數(shù)據(jù)

    詳解在vue-cli項目下簡單使用mockjs模擬數(shù)據(jù)

    這篇文章主要介紹了詳解在vue-cli項目下簡單使用mockjs模擬數(shù)據(jù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • vue element-ui el-tooltip組件失效問題及解決

    vue element-ui el-tooltip組件失效問題及解決

    這篇文章主要介紹了vue element-ui el-tooltip組件失效問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • ElementPlus 中el-select自定義指令實現(xiàn)觸底加載請求options數(shù)據(jù)的方法

    ElementPlus 中el-select自定義指令實現(xiàn)觸底加載請求options數(shù)據(jù)的方法

    觸底時,繼續(xù)向后端發(fā)請求獲取下一頁的數(shù)據(jù),請求回來的數(shù)據(jù)合并給options,這篇文章主要介紹了ElementPlus 中el-select自定義指令實現(xiàn)觸底加載請求options數(shù)據(jù)的操作方法,需要的朋友可以參考下
    2024-08-08
  • Vue.js實戰(zhàn)之Vuex的入門教程

    Vue.js實戰(zhàn)之Vuex的入門教程

    這篇文章主要給大家介紹了Vue.js實戰(zhàn)之Vuex的入門教程,文中介紹的非常詳細(xì),相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-04-04
  • Vue tagsview實現(xiàn)多頁簽導(dǎo)航功能流程詳解

    Vue tagsview實現(xiàn)多頁簽導(dǎo)航功能流程詳解

    基本上后臺管理系統(tǒng)都需要有多頁簽的功能,但是因為一些腳手架項目基本都把這個功能給集成好了,導(dǎo)致在學(xué)習(xí)或者修改的時候不知道該如何下手。今天這篇文章就來聊一聊,vue-element-admin項目是如何實現(xiàn)多頁簽功能的
    2022-09-09
  • 快速解決vue-cli在ie9+中無效的問題

    快速解決vue-cli在ie9+中無效的問題

    今天小編就為大家分享一篇快速解決vue-cli在ie9+中無效的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue中使用axios的作用

    vue中使用axios的作用

    Axios是一個功能強(qiáng)大、易用性高的HTTP庫,適用于大多數(shù)的前端項目,它提供了豐富的功能和靈活的配置選項,可以滿足不同項目的需求,這篇文章主要介紹了vue中使用axios的作用,需要的朋友可以參考下
    2023-08-08
  • 詳解在vue-cli項目中使用mockjs(請求數(shù)據(jù)刪除數(shù)據(jù))

    詳解在vue-cli項目中使用mockjs(請求數(shù)據(jù)刪除數(shù)據(jù))

    本篇文章主要介紹了在vue-cli項目中使用mockjs(請求數(shù)據(jù)刪除數(shù)據(jù)),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • vue?watch監(jiān)聽方法總結(jié)

    vue?watch監(jiān)聽方法總結(jié)

    這篇文章主要給大家分享的是vue?watch監(jiān)聽方法總結(jié),偵聽器一般來說是用來監(jiān)聽數(shù)據(jù)的變化,默認(rèn)是在數(shù)據(jù)發(fā)生變化時執(zhí)行。監(jiān)聽的數(shù)據(jù)名放到這里面作為函數(shù)名,這個函數(shù)里面有兩個參數(shù),一個是新值,一個是舊值。下面我們就一起進(jìn)入文章了解更具體的內(nèi)容吧
    2021-12-12

最新評論

抚宁县| 大化| 南平市| 孟州市| 临武县| 桂阳县| 临沂市| 舒城县| 美姑县| 东海县| 红河县| 清水河县| 津南区| 镇平县| 奇台县| 南阳市| 宝兴县| 治多县| 资溪县| 凤台县| 平南县| 清原| 神农架林区| 崇州市| 沙雅县| 通州市| 海原县| 扶余县| 江华| 灵寿县| 大竹县| 西安市| 永登县| 龙口市| 汉中市| 镇安县| 汽车| 靖宇县| 驻马店市| 嵩明县| 微山县|