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

el-upload http-request使用 多個(gè)文件上傳攜帶其他參數(shù)方式

 更新時(shí)間:2022年04月28日 15:35:01   作者:隨意花  
這篇文章主要介紹了el-upload http-request使用 多個(gè)文件上傳攜帶其他參數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

el-upload http-request使用

1、http-request:覆蓋默認(rèn)的上傳行為,可以自定義上傳的實(shí)現(xiàn)

2、不需要給action關(guān)聯(lián)上傳的地址,但是action這個(gè)屬性必須寫(xiě)

3、在http-request自定義上傳事件中將上傳文件保存到一個(gè)數(shù)組中

4、 接口使用formData表單數(shù)據(jù)格式傳參, 將上傳的文件和其他參數(shù)一起傳給接口,使用的方法是new FormData()

4、如果是單文件上傳并攜帶參數(shù),可以直接在http-request自定義事件中調(diào)用后端接口

多文件上傳攜帶參數(shù)完整代碼參考如下: 

<template>
? <div>
? ? <el-form
? ? ? :model="formData"
? ? ? label-width="80px"
? ? >
? ? ? <el-form-item
? ? ? ? label="科目名稱"
? ? ? ? prop="name"
? ? ? >
? ? ? ? <el-input v-model="formData.name" />
? ? ? </el-form-item>
? ? ? <el-form-item label="上傳文件">
? ? ? ? <el-upload
? ? ? ? ? action
? ? ? ? ? :http-request="httpRequest"
? ? ? ? ? :before-upload="beforeUploadClick"
? ? ? ? ? :on-exceed="handleExceed"
? ? ? ? ? :limit="2"
? ? ? ? ? multiple
? ? ? ? ? :show-file-list="false"
? ? ? ? >
? ? ? ? ? <el-button
? ? ? ? ? ? slot="trigger"
? ? ? ? ? ? size="small"
? ? ? ? ? ? type="primary"
? ? ? ? ? >選取文件</el-button>
? ? ? ? </el-upload>
? ? ? </el-form-item>
? ? ? <el-form-item>
? ? ? ? <el-button
? ? ? ? ? type="primary"
? ? ? ? ? @click="saveClick"
? ? ? ? >保存</el-button>
? ? ? </el-form-item>
? ? </el-form>
? </div>
</template>
<script>
import axios from 'axios'
export default {
? data() {
? ? return {
? ? ? formData: { name: '' },
? ? ? fileList: []
? ? }
? },
? methods: {
? ? // 重寫(xiě)文件上傳方法,覆蓋原有的上傳方法,將上傳的文件依次添加到fileList數(shù)組中
? ? httpRequest(option) {
? ? ? this.fileList.push(option)
? ? },
? ? ?// 上傳前處理
? ? beforeUploadClick(file) {
? ? },
? ? // 文件數(shù)量過(guò)多時(shí)提醒
? ? handleExceed() {
? ? ? this.$message({ type: 'info', message: '最多支持2個(gè)附件上傳' })
? ? },
? ? // 表單提交
? ? async saveClick() {
? ? ? // 使用form表單的數(shù)據(jù)格式
? ? ? const paramsData = new FormData()
? ? ? // 將上傳文件數(shù)組依次添加到參數(shù)paramsData中
? ? ? this.fileList.forEach((it, index) => {
? ? ? ? paramsData.append(`file${index}`, it.file)
? ? ? });
? ? ? // 將表單數(shù)據(jù)添加到參數(shù)paramsData中
? ? ? paramsData.append('name', this.formData.name)
? ? ? // 表單數(shù)據(jù)和文件一起上傳,調(diào)用后端接口
? ? ? const res = await axios({
? ? ? ? url: '后端接口地址',
? ? ? ? method: 'post',
? ? ? ? data: paramsData
? ? ? })
? ? }
? }
}
</script>

el-upload自定義http-request上傳踩坑

el-upload自定義上傳的坑

:http-request 指令的使用

使用該指令, :on-success, :on-error 指令是不會(huì)觸發(fā)的

<el-form-item label="logo" prop="logo">
? ? ? ? <el-upload
? ? ? ? ? class="upload-demo"
? ? ? ? ? ref="upload"
? ? ? ? ? action="string"
? ? ? ? ? accept="image/jpeg,image/png,image/jpg"
? ? ? ? ? list-type="picture-card"
? ? ? ? ? :before-upload="onBeforeUploadImage"
? ? ? ? ? :http-request="UploadImage"
? ? ? ? ? :on-change="fileChange"
? ? ? ? ? :file-list="fileList"
? ? ? ? >?
? ? ? ? ? <el-button size="small" type="primary">點(diǎn)擊上傳</el-button>
? ? ? ? ? <div slot="tip" class="el-upload__tip">只能上傳jpg/jpeg/png文件,且不超過(guò)500kb</div>
? ? ? ? </el-upload>
? ? ? </el-form-item>

說(shuō)明:

  • before-upload 上傳文件之前的鉤子
  • action 可以使用普通字符串代替,沒(méi)有什么意義,但不建議刪除,因?yàn)槲覀兪褂胔ttp-request 這個(gè)指令
  • http-request 自定義request請(qǐng)求
  • on-change 上傳文件改變時(shí)候觸發(fā)的方法

還可以解決這個(gè)問(wèn)題 limit設(shè)置為1, 點(diǎn)擊上傳不起效果

data() {
? ? fileList: [],
? ? logo: '',
}
methods: {
? ? onBeforeUploadImage(file) {
? ? ? const isIMAGE = file.type === 'image/jpeg' || 'image/jpg' || 'image/png'
? ? ? const isLt1M = file.size / 1024 / 1024 < 1
? ? ? if (!isIMAGE) {
? ? ? ? this.$message.error('上傳文件只能是圖片格式!')
? ? ? }
? ? ? if (!isLt1M) {
? ? ? ? this.$message.error('上傳文件大小不能超過(guò) 1MB!')
? ? ? }
? ? ? return isIMAGE && isLt1M
? ? },
? ? UploadImage(param){
? ? ? const formData = new FormData()
? ? ? formData.append('file', param.file)
? ? ? UploadImageApi(formData).then(response => {
? ? ? ? ? console.log('上傳圖片成功')
? ? ? ? param.onSuccess() ?// 上傳成功的圖片會(huì)顯示綠色的對(duì)勾
? ? ? ? // 但是我們上傳成功了圖片, fileList 里面的值卻沒(méi)有改變,還好有on-change指令可以使用
? ? ? }).catch(response => {
? ? ? ? console.log('圖片上傳失敗')
? ? ? ? param.onError()
? ? ? })
? ? },
? ? fileChange(file){
? ? ? this.$refs.upload.clearFiles() //清除文件對(duì)象
? ? ? this.logo = file.raw // 取出上傳文件的對(duì)象,在其它地方也可以使用
? ? ? this.fileList = [{name: file.name, url: file.url}] // 重新手動(dòng)賦值filstList, 免得自定義上傳成功了, 而fileList并沒(méi)有動(dòng)態(tài)改變, 這樣每次都是上傳一個(gè)對(duì)象
? ? },
}

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

相關(guān)文章

最新評(píng)論

亚东县| 读书| 五峰| 潮安县| 揭西县| 怀仁县| 秭归县| 马山县| 通海县| 金寨县| 家居| 盐边县| 哈巴河县| 白玉县| 永州市| 渑池县| 临高县| 平原县| 西和县| 英德市| 娱乐| 额尔古纳市| 定襄县| 孟连| 顺昌县| 鄯善县| 翼城县| 昌平区| 都匀市| 澜沧| 乌什县| 凌海市| 梧州市| 伊吾县| 台江县| 沅江市| 延庆县| 扶绥县| 三门峡市| 深州市| 兴宁市|