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

如何在ElementUI的上傳組件el-upload中設(shè)置header

 更新時(shí)間:2022年09月07日 08:34:10   作者:龍易安  
這篇文章主要介紹了如何在ElementUI的上傳組件el-upload中設(shè)置header,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

在ElementUI上傳組件el-upload中設(shè)置header

在vue項(xiàng)目中我們發(fā)送ajax請(qǐng)求一般都會(huì)使用axios,并在axios中設(shè)置axios.defaults.baseURL,請(qǐng)求的基本地址,并在請(qǐng)求攔截器中設(shè)置headers

axios.interceptors.request.use(config=>{
? NProgress.start();
? // 發(fā)送請(qǐng)求需帶上token
? config.headers.Authorization=window.sessionStorage.getItem("token")
? return config;
})

使用el-upload上傳組件時(shí),action 為必選參數(shù),上傳的地址。

但此時(shí)我們?yōu)閍ction填寫地址不能不寫基本地址而僅寫upload,要寫完整的地址。

這是因?yàn)閑l-upload上傳組件在上傳發(fā)送請(qǐng)求時(shí),不會(huì)去使用我們?cè)O(shè)置的axios,而是在組件內(nèi)部自己封裝了自己的請(qǐng)求方法。所以我們必須把地址寫完整。

那有時(shí)在上傳時(shí)會(huì)報(bào)出錯(cuò)誤,例如‘無(wú)效token’,這是因?yàn)槲覀儧](méi)有為此上傳請(qǐng)求設(shè)置請(qǐng)求頭部。el-upload組件有一個(gè)屬性headers ,設(shè)置上傳的請(qǐng)求頭部

?<el-upload
? ? ? ? ? ? ? action="http://127.0.0.1:8888/api/private/v1/upload"
? ? ? ? ? ? ? :headers="headerObj"
? ? ? ? ? ? ? :on-preview="handlePreview"
? ? ? ? ? ? ? :on-remove="handleRemove"
? ? ? ? ? ? ? :on-success="handleSuccess"
? ? ? ? ? ? ? list-type="picture"
? ? ? ? ? ? >
? ? ? ? ? ? ? <el-button size="small" type="primary">點(diǎn)擊上傳</el-button>
? ? ? ? ? ? ? <div slot="tip" class="el-upload__tip">
? ? ? ? ? ? ? ? 只能上傳jpg/png文件,且不超過(guò)500kb
? ? ? ? ? ? ? </div>
? ? ? ? ? ? </el-upload>

在data中定義headerObj

headerObj: {
? ? ? ? Authorization: window.sessionStorage.getItem("token"),
? ? ? },

element-ui中的upload組件使用總結(jié)

element-ui官網(wǎng)

使用upload組件:

<el-upload
? ?class="upload-demo"
? ?ref="uploadFile"
? ?:on-change="beforeUpload"
? ?:action="uploadUrl"
? ?:headers="myHeader"
? ?:on-remove="handleRemove"
? ?:before-remove="beforeRemove"
? ?:limit="1"
? ?:auto-upload="false"
? ?:on-exceed="handleExceed"
>
<el-button size="small" type="primary">選擇文件</el-button>
  • action: 是請(qǐng)求后端接口的路徑 (必填的)
  • header: 是配置請(qǐng)求頭的 / 在此處帶了token
  • on-change: 文件狀態(tài)改變時(shí)的鉤子,添加文件、上傳成功和上傳失敗時(shí)都會(huì)被調(diào)用
  • on-remove: 是文件列表中移除文件時(shí)執(zhí)行的
  • before-remove: 刪除文件之前執(zhí)行的,可以用作提示用戶二次確認(rèn)刪除
  • limit: 是上傳文件的個(gè)數(shù)
  • auto-upload: 是控制是否自動(dòng)上傳的
  • on-exceed: 上傳文件個(gè)數(shù)超過(guò)限制的時(shí)候執(zhí)行的

此處添加的ref是為了在用戶點(diǎn)擊關(guān)閉后清空列表 

通過(guò)clearFiles方法,這也是element提供的。

addDialogClose(){
? this.$refs.ruleForm.resetFields();
? this.addClassroomShow = false
? this.$refs.upload.clearFiles();
}

在使用時(shí)最坑的地方就是action屬性不能及時(shí)響應(yīng)數(shù)據(jù)跟新,總是晚一步。

使用了before-upload、on-progress都不行,數(shù)據(jù)已經(jīng)更改,但是action里還是舊的。

研究一下午:

將auto-upload屬性設(shè)置為false,

然后使用了on-change

在on-change鉤子中,去判斷文件后綴,來(lái)確定文件類型,來(lái)確定調(diào)用不同的接口

然后通過(guò)ref屬性去執(zhí)行上傳

beforeUpload(file) {
? if(/\.(mp4|m3u8|rmvb|avi|swf|3gp)$/.test(file.name)) {
? ? ?this.ruleForm.uploadUrl = this.vidoeUploadUrl
? }else{
? ? ?this.ruleForm.uploadUrl = this.fileUploadUrl
? }
? this.$nextTick(()=>{
? ? ?this.$refs.uploadFile.submit()
? })
},

此時(shí)就ok了!

如果action是死路徑就不需要考慮這些問(wèn)題了。如果是動(dòng)態(tài)的,就讓它異步,或給它加個(gè)延時(shí)器。

總結(jié):upload組件已經(jīng)封裝的很好了,只是action屬性是必填的,有點(diǎn)坑。以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用 vue 實(shí)現(xiàn)滅霸打響指英雄消失的效果附demo

    使用 vue 實(shí)現(xiàn)滅霸打響指英雄消失的效果附demo

    這篇文章主要介紹了使用 vue 實(shí)現(xiàn)滅霸打響指英雄消失的效果 demo,需要的朋友可以參考下
    2019-05-05
  • 如何測(cè)量vue應(yīng)用運(yùn)行時(shí)的性能

    如何測(cè)量vue應(yīng)用運(yùn)行時(shí)的性能

    這篇文章主要介紹了如何測(cè)量vue應(yīng)用運(yùn)行時(shí)的性能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下
    2019-06-06
  • mpvue中使用flyjs全局?jǐn)r截的實(shí)現(xiàn)代碼

    mpvue中使用flyjs全局?jǐn)r截的實(shí)現(xiàn)代碼

    這篇文章主要介紹了mpvue中使用flyjs全局?jǐn)r截的實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • vue實(shí)現(xiàn)頂部導(dǎo)航欄以及跳轉(zhuǎn)

    vue實(shí)現(xiàn)頂部導(dǎo)航欄以及跳轉(zhuǎn)

    這篇文章主要介紹了vue實(shí)現(xiàn)頂部導(dǎo)航欄以及跳轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Vue指令的學(xué)習(xí)

    Vue指令的學(xué)習(xí)

    這篇文章主要介紹了Vue指令,Vue官網(wǎng)一共有提供了14個(gè)指令,下面我們就來(lái)詳細(xì)講解每一個(gè)指令的詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2021-10-10
  • Vue3使用hook封裝媒體查詢和事件監(jiān)聽的代碼示例

    Vue3使用hook封裝媒體查詢和事件監(jiān)聽的代碼示例

    這篇文章主要給大家詳細(xì)介紹Vue3如何使用hook封裝媒體查詢和事件監(jiān)聽,使得Vue的開發(fā)更加絲滑,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),感興趣的同學(xué)跟著小編一起來(lái)學(xué)習(xí)吧
    2023-07-07
  • Vue SSR 組件加載問(wèn)題

    Vue SSR 組件加載問(wèn)題

    這篇文章主要介紹了Vue SSR 組件加載問(wèn)題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-05-05
  • vue兩個(gè)輸入框聯(lián)動(dòng)校驗(yàn)方式(最大值-最小值)

    vue兩個(gè)輸入框聯(lián)動(dòng)校驗(yàn)方式(最大值-最小值)

    這篇文章主要介紹了vue兩個(gè)輸入框聯(lián)動(dòng)校驗(yàn)方式(最大值-最小值),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • IDEA安裝vue插件圖文詳解

    IDEA安裝vue插件圖文詳解

    這篇文章主要為大家詳細(xì)介紹了IDEA安裝vue插件圖文,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Vue3使用dataV報(bào)錯(cuò)問(wèn)題的解決方法

    Vue3使用dataV報(bào)錯(cuò)問(wèn)題的解決方法

    這篇文章主要為大家詳細(xì)介紹了Vue3中使用dataV報(bào)錯(cuò)問(wèn)題的解決方法,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11

最新評(píng)論