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

element-ui中使用upload組件獲取上傳文件信息

 更新時(shí)間:2023年07月18日 16:01:47   作者:考拉菜鳥  
這篇文章主要介紹了element-ui中使用upload組件獲取上傳文件信息方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1.使用htttp-request自定義上傳

在這里插入圖片描述

使用element-ui中的上傳組件,upload,這個(gè)默認(rèn)發(fā)送post請(qǐng)求,

在使用upload組件自動(dòng)攜帶的請(qǐng)求方式發(fā)送

  • action->請(qǐng)求的url
  • on-success->請(qǐng)求發(fā)送成功的鉤子–方法function(response, file, fileList)默認(rèn)參數(shù)3個(gè)
  • auto-upload->是否在選取文件后立即進(jìn)行上傳,默認(rèn)是true(選取文件即上傳)
  • name->上傳的文件字段名,默認(rèn)值file,后臺(tái)有時(shí)候需要發(fā)送別的字段名如image就這修改
  • data->上傳時(shí)附帶的額外參數(shù)object
  • disabled->是否禁用,默認(rèn)false
  • http-request->覆蓋默認(rèn)的上傳行為,可以自定義上傳的實(shí)現(xiàn)–方法(當(dāng)請(qǐng)求方式不為post可以自定義方式)

下面是兩個(gè)例子

1.使用upload默認(rèn)請(qǐng)求方式post發(fā)送提交圖片請(qǐng)求

后臺(tái)要求文件字段image

在這里插入圖片描述

在這里插入圖片描述

在文件上傳成功后,可以從response的data屬性獲取圖片在服務(wù)器上的路徑,文件的具體信息在file.raw中

在這里插入圖片描述

2.使用upload上傳文件,發(fā)送patch請(qǐng)求數(shù)據(jù)

需要使用http-request鉤子由于覆蓋了其默認(rèn)請(qǐng)求,updateImg中異步請(qǐng)求攜帶了路徑,action中就隨便放了個(gè)網(wǎng)址,action是必傳參數(shù)

在這里插入圖片描述

http-reques鉤子有個(gè)默認(rèn)參數(shù),val.file可以獲取文件數(shù)據(jù)信息

在這里插入圖片描述

在這里插入圖片描述

2.使用手動(dòng)上傳

需求背景

有個(gè)form表單,通過上傳組件獲取上傳文件信息,點(diǎn)擊彈窗的確定按鈕后,接口統(tǒng)一進(jìn)行上傳;

限制上傳zip類型文件,不超過10M,限制選擇1個(gè)zip包

在這里插入圖片描述

在這里插入圖片描述

<!-- 文件上傳-->
<el-form :rules="rules" :model="dataForm" ref="dataForm" label-width="150px" @submit.native.prevent>
      <el-form-item label="名稱:" prop="name">
        <el-input type="text" v-model.trim="dataForm.name" clearable></el-input>
      </el-form-item>
      <el-form-item label="文件:" prop="file" >
        <el-upload
            class="upload-import"
            ref="uploadImport"
            action="https://baidu.com/" <!-- 手動(dòng)上傳, action隨便給了個(gè)地址-->
            :on-remove="handleRemove"
            :file-list="fileList"
            :limit="1" <!-- 限制上傳數(shù)量-->
            :on-change="handleChange"
            :auto-upload="false"	<!-- 關(guān)閉自動(dòng)上傳-->
            accept="application/zip,.zip">  <!-- 設(shè)置接收的文件類型-->
            <!-- el-upload組件,在手動(dòng)上傳時(shí),禁用按鈕外, 還需要設(shè)置    :disabled="hasFile"   為true禁用該組件,會(huì)導(dǎo)致上傳列表也被禁用,無法刪除,因此使用v-show,文件數(shù)量為1時(shí),顯示禁用的的按鈕, slot不綁定trigger事件 --> 
          <el-button v-show="!hasFile" slot="trigger" size="small" type="primary" >選取文件</el-button>
          <el-button v-show="hasFile"  size="small" type="primary" disabled>選取文件</el-button>
          <div slot="tip" class="el-upload__tip">只能上傳zip文件,且不超過10M</div>
        </el-upload>
      </el-form-item>
 </el-form>
<script>
export default {
	data(){
		return {
			dataForm: {
	          name: '',
	          file: null
	        },
	        rules: {
	          name: [
	            {required: true, message: "請(qǐng)輸入名稱", trigger: "blur"},
	            {max: 50, message: "最長可輸入50個(gè)字符", trigger: "blur"},
	            {validator: isvalidatName, trigger: "blur" },
	          ],
	          file: [
	            {required: true, message: "請(qǐng)選擇上傳文件", trigger: "blur"},
	          ]
        },
        hasFile: false,
        fileList: []
	},
	methods: {
		 handleRemove(file, fileList) {
	        if (!fileList.length) {
	          this.hasFile = false;
	        }
	        this.dataForm.file = null;
	      },
	      handleChange(file, fileList) {
    	    if (fileList.length >= 2) {
	          return;
	        }
	        if (fileList.length === 1) {
	          this.hasFile = true;
	        }
	        this.dataForm.file = file;
	      },
	      //確定按鈕
	      onSureHandle(){
				this.$refs.dataForm.validate(valid => {
					if(valid){
						let dataPar = this.dataForm;
						let fdParams = new FormData();
						fdParams.append('name', dataPar.name);
						fdParams.append('file', dataPar.file.raw);
					axios.post('/interface/importProject', fdParams, {
							headers: {'Content-Type': 'multipart/form-data'},//定義內(nèi)容格式,很重要
							timeout: 20000,
						}).then(response => {
							//...some logic
						}).catch(err =>{})						
					}
				})
		  }
	}
}
</script>
      ```

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue父子組件之間如何通過v-model傳值

    vue父子組件之間如何通過v-model傳值

    這篇文章主要介紹了vue父子組件之間如何通過v-model傳值的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2026-03-03
  • vuex管理狀態(tài)倉庫使用詳解

    vuex管理狀態(tài)倉庫使用詳解

    這篇文章主要介紹了vuex管理狀態(tài)倉庫使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • vue路由傳參接收以及傳參對(duì)象為對(duì)象時(shí)的問題及解決

    vue路由傳參接收以及傳參對(duì)象為對(duì)象時(shí)的問題及解決

    這篇文章主要介紹了vue路由傳參接收以及傳參對(duì)象為對(duì)象時(shí)的問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Vue學(xué)習(xí)筆記進(jìn)階篇之單元素過度

    Vue學(xué)習(xí)筆記進(jìn)階篇之單元素過度

    這篇文章主要介紹了Vue學(xué)習(xí)筆記進(jìn)階篇之單元素過度,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Vue項(xiàng)目中缺少明顯入口文件的原因及解決策略

    Vue項(xiàng)目中缺少明顯入口文件的原因及解決策略

    本文探討了Vue項(xiàng)目中缺少明顯入口文件的原因,并提供了解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • 老生常談vue的生命周期

    老生常談vue的生命周期

    這篇文章主要為大家詳細(xì)介紹了vue的生命周期,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • vue3中Teleport的用法以及使用場(chǎng)景小結(jié)

    vue3中Teleport的用法以及使用場(chǎng)景小結(jié)

    Teleport是一個(gè)內(nèi)置組件,它可以將一個(gè)組件內(nèi)部的一部分模板傳送到該組件的?DOM?結(jié)構(gòu)外層的位置去,本文主要介紹了Vue3中Teleport用法以及使用場(chǎng)景小結(jié),感興趣的可以了解一下
    2025-04-04
  • VUE獲取Promise對(duì)象中PromiseResult中的數(shù)據(jù)(最新推薦)

    VUE獲取Promise對(duì)象中PromiseResult中的數(shù)據(jù)(最新推薦)

    如果想要在接口請(qǐng)求方法的外面拿到請(qǐng)求的結(jié)果,再做相關(guān)數(shù)據(jù)處理,往往我們拿到的卻是一個(gè)Promise對(duì)象,那么遇到這樣的問題如何解決呢,下面小編給大家?guī)砹薞UE?項(xiàng)目中?如何獲取Promise對(duì)象中的PromiseResult中的數(shù)據(jù)?,感興趣的朋友一起看看吧
    2023-10-10
  • Vue通過配置WebSocket并實(shí)現(xiàn)群聊功能

    Vue通過配置WebSocket并實(shí)現(xiàn)群聊功能

    本篇文章將與各位開發(fā)者分享下 vue-native-websocket 庫的使用以及配置,通過實(shí)例代碼給大家分享Vue通過配置WebSocket并實(shí)現(xiàn)群聊功能,需要的朋友可以參考下
    2019-12-12
  • Vue 實(shí)例事件簡單示例

    Vue 實(shí)例事件簡單示例

    這篇文章主要介紹了Vue 實(shí)例事件,結(jié)合簡單示例形勢(shì)分析了vue.js事件響應(yīng)與頁面元素相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09

最新評(píng)論

沙洋县| 当阳市| 浦北县| 乐安县| 监利县| 日喀则市| 历史| 萨嘎县| 巫山县| 望江县| 云南省| 洛阳市| 吉水县| 平乡县| 丰台区| 富顺县| 瑞昌市| 太保市| 托克逊县| 迁安市| 新邵县| 航空| 云安县| 利川市| 莱州市| 石泉县| 曲水县| 邯郸县| 沂南县| 依兰县| 神池县| 汶上县| 定襄县| 建湖县| 库车县| 崇阳县| 定结县| 大港区| 四子王旗| 永德县| 卓资县|