欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue封裝el-upload批量上傳只請(qǐng)求一次接口

 更新時(shí)間:2023年02月02日 16:06:22   作者:Bruce小鬼  
本文主要介紹了vue封裝el-upload批量上傳只請(qǐng)求一次接口,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1.概述

el-upload組件默認(rèn)批量上傳邏輯是可以批量選擇文件,點(diǎn)擊上傳時(shí)候是每個(gè)文件調(diào)用一次接口,請(qǐng)求接口時(shí)不是批量傳遞文件。這樣會(huì)造成上傳接口頻繁調(diào)用,壓力增大,不利于接口的穩(wěn)定性。
因此我們需要對(duì)el-upload組件進(jìn)行封裝,實(shí)現(xiàn)批量文件上傳只調(diào)用一次接口。

2.封裝el-upload組件實(shí)現(xiàn)批量上傳

1.引入上傳組件

在vue的template標(biāo)簽中引入el-upload組件,引入代碼和屬性說(shuō)明如下。

el-upload組件封裝參數(shù)介紹

  • multiple:默認(rèn)true,批量選擇屬性。
  • action: 上傳接口地址,這里我們使用自定義方式上傳,因此這個(gè)值為空。
  • show-file-list: 是否顯示選擇文件的列表
  • auto-upload: 選擇文件后是否自動(dòng)上傳,這里必須設(shè)置為不自動(dòng)上傳,使用我們封裝的方法上傳
  • http-request:覆蓋action默認(rèn)的上傳行為,使用自定義方式上傳。
<el-upload ref="upload" multiple action="" :show-file-list="false" :auto-upload="false" :http-request="uploadFile">
    <el-button slot="trigger" size="small" type="primary">選取文件</el-button>
    <el-button style="margin-left: 10px" size="small" type="success" @click="submitUpload">上傳到服務(wù)器</el-button>
    <div slot="tip" class="el-upload__tip">只能上傳jpg/png文件,且不超過(guò)5G</div>
</el-upload>

2.封裝自定義上傳方法

上面我們引入el-upload組件時(shí),使用http-request屬性覆蓋了默認(rèn)的上傳行為,使用自定義的上傳行為,下面就來(lái)封裝自定義的上傳方法。
在vue頁(yè)面的

<script>
export default {
? data() {
? ? return {
? ? ? // 上傳的多個(gè)文件
? ? ? files: [],
? ? }
? },
? ?methods: {
? ? // 將選擇的批量文件添加到files數(shù)組中
? ? uploadFile(raw) {
? ? ? this.files.push(raw.file)
? ? },
? ? // 請(qǐng)求后端上傳接口上傳文件
? ? async submitUpload() {
? ? ? ? // el-upload原始上傳方法
? ? ? this.$refs.upload.submit()

? ? ? // 創(chuàng)建FormData對(duì)象,通過(guò)該對(duì)象實(shí)現(xiàn)批量文件上傳
? ? ? let fd = new FormData()
? ? ? // 因?yàn)橐蟼鞫鄠€(gè)文件,所以需要遍歷一下才行,不要直接使用我們的文件數(shù)組進(jìn)行上傳,你會(huì)發(fā)現(xiàn)傳給后臺(tái)的是兩個(gè)Object
? ? ? this.files.forEach(function (file) {
? ? ? ? ? // 遍歷files數(shù)組,將file添加到FormData對(duì)象中
? ? ? ? fd.append("file", file, file.name)
? ? ? })
? ? ? // 請(qǐng)求后端接口
? ? ? nanoApi
? ? ? ? .uploadFile(fd)
? ? ? ? .then((res) => {
? ? ? ? ? console.log("上傳文件", res)
? ? ? ? })
? ? ? ? .catch((error) => {
? ? ? ? ? console.log("上傳失敗" + error)
? ? ? ? })
? ? },
? }
}
</script>

3.axios封裝

axios是封裝好的,下面是請(qǐng)求上傳接口參數(shù)。

uploadFile(data) {
    return request({
      url: `/api/v1/upload`,
      method: "post",
      //Content-Type請(qǐng)求類型必須設(shè)置為multipart/form-data
      headers: {
        "Content-Type": "multipart/form-data",
      },
      // 上傳文件
      data,
    })
  },

到此這篇關(guān)于vue封裝el-upload批量上傳只請(qǐng)求一次接口的文章就介紹到這了,更多相關(guān)vue el-upload上傳請(qǐng)求接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在vant中如何使用dialog彈窗

    在vant中如何使用dialog彈窗

    這篇文章主要介紹了在vant中如何使用dialog彈窗,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • vue快捷鍵與基礎(chǔ)指令詳解

    vue快捷鍵與基礎(chǔ)指令詳解

    這篇文章主要介紹了vue快捷鍵與基礎(chǔ)指令詳解,需要的朋友可以參考下
    2017-06-06
  • Vue使用extend動(dòng)態(tài)創(chuàng)建組件的實(shí)現(xiàn)

    Vue使用extend動(dòng)態(tài)創(chuàng)建組件的實(shí)現(xiàn)

    本文主要介紹了Vue使用extend動(dòng)態(tài)創(chuàng)建組件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • vue-router后臺(tái)鑒權(quán)流程實(shí)現(xiàn)

    vue-router后臺(tái)鑒權(quán)流程實(shí)現(xiàn)

    本文主要介紹了vue-router后臺(tái)鑒權(quán)流程實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • vue項(xiàng)目啟動(dòng)后沒有局域網(wǎng)地址問(wèn)題

    vue項(xiàng)目啟動(dòng)后沒有局域網(wǎng)地址問(wèn)題

    這篇文章主要介紹了vue項(xiàng)目啟動(dòng)后沒有局域網(wǎng)地址問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Vue build過(guò)程取消console debugger控制臺(tái)信息輸出方法詳解

    Vue build過(guò)程取消console debugger控制臺(tái)信息輸出方法詳解

    這篇文章主要為大家介紹了Vue build過(guò)程取消console debugger控制臺(tái)信息輸出方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • vue.js添加一些觸摸事件以及安裝fastclick的實(shí)例

    vue.js添加一些觸摸事件以及安裝fastclick的實(shí)例

    今天小編就為大家分享一篇vue.js添加一些觸摸事件以及安裝fastclick的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • vue之計(jì)算屬性的緩存computed的用法解讀

    vue之計(jì)算屬性的緩存computed的用法解讀

    這篇文章主要介紹了vue之計(jì)算屬性的緩存computed的用法解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • vue之使用vuex進(jìn)行狀態(tài)管理詳解

    vue之使用vuex進(jìn)行狀態(tài)管理詳解

    這篇文章主要介紹了vue之使用vuex進(jìn)行狀態(tài)管理詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue實(shí)現(xiàn)鎖屏功能的示例代碼

    Vue實(shí)現(xiàn)鎖屏功能的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Vue實(shí)現(xiàn)簡(jiǎn)單的鎖屏功能,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,需要的小伙伴可以了解一下
    2023-06-06

最新評(píng)論