Vue框架+Element-ui(el-upload組件)使用http-request方法上傳文件并顯示文件上傳進度功能
頁面代碼
</el-form> <el-form-item> <form id="upload" enctype="multipart/form-data" method="post"> <el-upload ref="upload" class="upload-demo" action="#" :http-request="UploadImage" :on-change="fileChange" :before-upload="beforeUpload" > <!-- :before-upload="beforeUpload"--> <el-button size="small" type="primary" class="el-icon-upload"> 數(shù)據(jù)上傳</el-button> <!-- <div--> <!-- slot="tip"--> <!-- class="el-upload__tip"--> <!-- >只能上傳db文件,且不超過一個</div>--> </el-upload> </form> </el-form-item> <!-- <el-progress v-if="progressFlag" />--> <el-form-item label="當前文件上傳進度"> <el-progress style="width: 200px;margin-top: 8px" :text-inside="true" :stroke-width="20" :percentage="progressPercent" /> </el-form-item> </el-form>
script部分
引入axios import axios from 'axios'
methods代碼片段
UploadImage(param) { if (this.filterForm.documentType === '') { this.$message({ message: '請選擇檔案類型后并重新上傳', type: 'warning' }) return } else if (this.filterForm.regTargetArea === '') { this.$message({ message: '請選擇區(qū)縣后并重新上傳', type: 'warning' }) return } else { // 上傳新文件時,將進度條值置為零 this.progressPercent = 0 this.progressFlag = true const formdata = new FormData() formdata.append('documentType', this.filterForm.documentType) formdata.append('upload', param.file) axios({ url: 'url?token=' + this.$store.getters.token, method: 'post', data: formdata, headers: { 'Content-Type': 'multipart/form-data' }, onUploadProgress: progressEvent => { // progressEvent.loaded:已上傳文件大小 // progressEvent.total:被上傳文件的總大小 this.progressPercent = (progressEvent.loaded / progressEvent.total * 100) console.info(progressEvent.loaded) console.info(progressEvent.total) } }).then(response => { if (response.data.rel) { this.$message({ message: '文件上傳成功', type: 'success' }) // if (this.progressPercent === 100) { // this.progressFlag = false // this.progressPercent = 0 // } this.logData.upUploadStatus = 1 // 是否上傳成功 1 成功 0失敗 } else { this.logData.upUploadStatus = 0 } this.logData.upRegion = this.filterForm.regTargetArea // areacode this.logData.upFileUrl = response.data.filePath // 上傳文件存儲路徑 this.logData.upQueryType = this.filterForm.documentType // 檔案類型id this.logData.upUploadFileSize = response.data.fileSize // 文件大小 this.logData.upUploadFileName = response.data.fileName // 文件名 // 文件上傳成功后添加日志 addUpload(this.logData).then(item => { console.log('新增文件上傳統(tǒng)計日志成功') }).catch(res => { console.log('新增文件上傳統(tǒng)計日志失敗') }) param.onSuccess() // 上傳成功的文件會顯示綠色的對勾 }).catch(response => { this.$message({ message: '文件上傳失敗', type: 'warning' }) }).then(error => { console.log(error) }) } }
axios請求后臺時,如有鑒權(quán)機制記得帶上token
文件上傳前做文件類型檢查
beforeUpload(file) { console.log(file) const testmsg = file.name.substring(file.name.lastIndexOf('.') + 1) const extension = testmsg === 'db' // const isLt2M = file.size / 1024 / 1024 < 10 if (!extension) { this.$message({ message: '上傳文件只能是db格式!', type: 'warning' }) } // if(!isLt2M) { // this.$message({ // message: '上傳文件大小不能超過 10MB!', // type: 'warning' // }); // } // return extension || extension2 && isLt2M return extension }
附上效果圖(進度條是實時動態(tài)的)
到此這篇關(guān)于Vue框架+Element-ui(el-upload組件)使用http-request方法上傳文件并顯示文件上傳進度的文章就介紹到這了,更多相關(guān)Vue Element-ui上傳文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue3使用element-plus中el-table組件報錯關(guān)鍵字'emitsOptions'與&
這篇文章主要給大家介紹了關(guān)于vue3使用element-plus中el-table組件報錯關(guān)鍵字'emitsOptions'與'insertBefore'的相關(guān)資料,文中將解決方法介紹的非常詳細,需要的朋友可以參考下2022-10-10vue和better-scroll實現(xiàn)列表左右聯(lián)動效果詳解
這篇文章主要介紹了vue和better-scroll實現(xiàn)列表左右聯(lián)動效果,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04vant組件中 dialog的確認按鈕的回調(diào)事件操作
這篇文章主要介紹了vant組件中 dialog的確認按鈕的回調(diào)事件操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11vue點擊按鈕跳轉(zhuǎn)到另一個vue頁面實現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于vue點擊按鈕跳轉(zhuǎn)到另一個vue頁面的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08vue使用Luckysheet插件實現(xiàn)excel導(dǎo)入導(dǎo)出
本文主要介紹了vue使用Luckysheet插件實現(xiàn)excel導(dǎo)入導(dǎo)出,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-03-03