VUE+element-ui文件上傳的示例代碼
圖片上傳(ImageCropper)
此前端代碼自己封裝了文件上傳,只需要配置后端接口需求URL以及對(duì)應(yīng)的圖片上傳成功后的處理函數(shù),后端返回OSS生成的圖片訪(fǎng)問(wèn)地址,然后cropsuccess函數(shù)將上傳成功的圖像進(jìn)行顯示。
<template>
<div class="app-container">
<!-- 講師頭像 -->
<el-form-item label="講師頭像">
<!-- 頭銜縮略圖 -->
<pan-thumb :image="teacher.avatar"/>
<!-- 文件上傳按鈕 -->
<el-button type="primary" icon="el-icon-upload"
@click="imagecropperShow=true">更換頭像
</el-button>
<!--
v-show:是否顯示上傳組件
:key:類(lèi)似于id,如果一個(gè)頁(yè)面多個(gè)圖片上傳控件,可以做區(qū)分
:url:后臺(tái)上傳的url地址
@close:關(guān)閉上傳組件
@crop-upload-success:上傳成功后的回調(diào)
field就是起name作用,值要與后端接口的參數(shù)一致
-->
<image-cropper
v-show="imagecropperShow"
:width="300"
:height="300"
:key="imagecropperKey"
:url="BASE_API+'/eduoss/fileoss'"
field="file"
@close="close"
@crop-upload-success="cropSuccess"/>
</el-form-item>
</div>
</template>
<script>
//引入調(diào)用API層:teacher.js文件
import ImageCropper from '@/components/ImageCropper'
import PanThumb from '@/components/PanThumb'
export default{
components: { ImageCropper, PanThumb },
data() {
return{
teacher:{},
saveBtnDisabled:false, // 保存按鈕是否禁用
imagecropperKey:0,//上傳組件key值
imagecropperShow:false,
BASE_API:process.env.BASE_API, //獲取dev.env.js里面地址
saveBtnDisabled:false // 保存按鈕是否禁用,
}
},
methods: {
close() { //關(guān)閉上傳彈框的方法
this.imagecropperShow=false
//上傳組件初始化:防止不能連續(xù)上傳修改頭像
this.imagecropperKey = this.imagecropperKey+1
},
//上傳成功后的方法
cropSuccess(data) {
this.imagecropperShow=false
//上傳之后,后端接口返回?cái)?shù)據(jù)(url)類(lèi)似response
this.teacher.avatar = data.url
//上傳組件初始化
this.imagecropperKey = this.imagecropperKey+1
},
}
}
</script>


文件上傳(el-upload)
<template>
<div class="app-container">
<el-form label-width="120px">
<el-form-item label="信息描述">
<el-tag type="info">excel模版說(shuō)明</el-tag>
<el-tag>
<i class="el-icon-download"/>
<a :href="'/static/01.xlsx'">點(diǎn)擊下載模版</a>
</el-tag>
</el-form-item>
<el-form-item label="選擇Excel">
<el-upload
ref="upload"
:auto-upload="false"
:on-success="fileUploadSuccess"
:on-error="fileUploadError"
:disabled="importBtnDisabled"
:limit="1"
:action="BASE_API+'/eduservice/subject/addSubject'"
name="file"
accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet">
<el-button slot="trigger" size="small" type="primary">選取文件</el-button>
<el-button
:loading="loading"
style="margin-left: 10px;"
size="small"
type="success"
@click="submitUpload">上傳到服務(wù)器</el-button>
</el-upload>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
data() {
return {
BASE_API: process.env.BASE_API, // 接口API地址
importBtnDisabled: false, // 按鈕是否禁用,
loading: false
}
},
created() {
},
methods:{
//點(diǎn)擊按鈕上傳文件到接口里面
submitUpload() {
this.importBtnDisabled = true
this.loading = true
// js: document.getElementById("upload").submit()
this.$refs.upload.submit()
},
//上傳成功
fileUploadSuccess(response) {
//提示信息
this.loading = false
this.$message({
type: 'success',
message: '添加課程分類(lèi)成功'
})
//跳轉(zhuǎn)課程分類(lèi)列表
//路由跳轉(zhuǎn)
this.$router.push({path:'/subject/list'})
},
//上傳失敗
fileUploadError() {
this.loading = false
this.$message({
type: 'error',
message: '添加課程分類(lèi)失敗'
})
}
}
}
</script>

注意
name屬性值要與后端接口參數(shù)MultipartFile的變量名一致,否則無(wú)法映射匹配傳值。
前端標(biāo)識(shí)符屬性值和后端參數(shù)名稱(chēng)(實(shí)體類(lèi)中屬性名)保持一致,否則無(wú)法直接映射傳參,導(dǎo)致后端接收不到數(shù)據(jù)。
到此這篇關(guān)于VUE+element-ui文件上傳的文章就介紹到這了,更多相關(guān)VUE+element-ui文件上傳內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue基于session和github-oauth2實(shí)現(xiàn)登錄注冊(cè)驗(yàn)證思路詳解
通過(guò) sessionId 可以在 session 表中獲取用戶(hù)的信息,此外,還利用 session 表實(shí)現(xiàn)了GitHub 的 OAuth2 第三方登錄,本文講解前端通過(guò)簡(jiǎn)單的方式實(shí)現(xiàn)一個(gè)基本的登錄注冊(cè)驗(yàn)證功能,感興趣的朋友跟隨小編一起看看吧2024-08-08
將vue項(xiàng)目打包成電腦端應(yīng)用.exe的完整步驟
最近接了個(gè)小活,其中甲方要求把vue項(xiàng)目打包成exe安裝在windows上,其中有也會(huì)出現(xiàn)一些小問(wèn)題和優(yōu)化,特此記錄,這篇文章主要給大家介紹了關(guān)于將vue項(xiàng)目打包成電腦端應(yīng)用.exe的完整步驟,需要的朋友可以參考下2023-10-10
Vue3通過(guò)JSON渲染ElementPlus表單的流程步驟
這篇文章主要介紹了Vue3通過(guò)JSON渲染ElementPlus表單的流程步驟,文中通過(guò)代碼示例和圖文給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-10-10
Vue實(shí)現(xiàn)搜索 和新聞列表功能簡(jiǎn)單范例
本文通過(guò)實(shí)例代碼給大家介紹了Vue實(shí)現(xiàn)搜索 和新聞列表功能簡(jiǎn)單范例,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2018-03-03
vue中如何使用elementUI表格動(dòng)態(tài)行合并
這篇文章主要介紹了vue中如何使用elementUI表格動(dòng)態(tài)行合并,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
vue中的事件修飾符once,prevent,stop,capture,self,passive
這篇文章主要介紹了vue中的事件修飾符once,prevent,stop,capture,self,passive,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
Ant?Design?of?Vue?select框獲取key和name的問(wèn)題
這篇文章主要介紹了Ant?Design?of?Vue?select框獲取key和name的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
vue無(wú)法加載文件C:\xx\AppData\Roaming\npm\vue.ps1系統(tǒng)禁止運(yùn)行腳本
這篇文章主要介紹了vue?:?無(wú)法加載文件?C:\xx\AppData\Roaming\npm\vue.ps1...系統(tǒng)上禁止運(yùn)行腳本問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07

