日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Vue實現附件上傳功能

瀏覽:123日期:2023-01-18 10:30:12

本文實例為大家分享了Vue實現附件上傳的具體代碼,供大家參考,具體內容如下

前言

前端 UI 是用的是 element-ui 的上傳功能

本文主要記錄下代碼,方便下次復制粘貼

前端部分

HTML

limit: 限制文件個數 1 個 on-remove: 移除附件時的鉤子函數,主要就 console 輸出下 on-error: 用于處理上傳異常后的處理,本人這主要用來關閉彈窗和全屏等待 file-list: 綁定附件 auto-upload: 禁止自動上傳,true 的話選了文件就自動上傳 http-request: 自定義上傳文件請求方法,默認方法會與 mock 產生 XmlRequest 重新生成導致找不到文件問題,我注釋了 mock 還是那樣,沒具體研究 action: 原上傳文件的路徑,由于使用了自定義上傳文件請求,即 http-request,因此這個字段隨便寫就好,不寫不行好像

<el-upload ref='upload' :limit='1' :on-remove='handleRemove' :on-error='onError' :file-list='fileList' :auto-upload='false' :http-request='uploadFile' action='https://jsonplaceholder.typicode.com/posts/' class='upload-demo'> <el-button slot='trigger' size='small' type='primary'>選取文件</el-button> <!-- <el-button size='small' type='success' @click='submitUpload'>上傳到服務器</el-button> --> <div slot='tip' class='el-upload__tip'>支持上傳 {{ strRebuild(fileType) }} 格式,且不超過 {{ fileSize }}M</div></el-upload>

JS

import { strRebuild, lastSubstring } from ’@/utils/strUtil’import { message } from ’@/utils/message’export default { data() { return { // 附件列表 fileList: [], // 允許的文件類型 fileType: [’xls’, ’xlsx’, ’pdf’, ’doc’, ’docx’, ’txt’, ’jpg’, ’png’, ’jpeg’], // 運行上傳文件大小,單位 M fileSize: 10, } }, methods: { // 清空表單 clear() { // 清空附件 this.$refs.upload.clearFiles() }, // 附件檢查 // 檢查附件是否屬于可上傳類型 // 檢查附件是否超過限制大小 checkFile() { var flag = true var tip = ’’ var files = this.$refs.upload.uploadFiles files.forEach(item => { // 文件過大 if (item.size > this.fileSize * 1024 * 1024) { flag = false tip = ’ 文件超過’ + this.fileSize + ’M’ } // 文件類型不屬于可上傳的類型 if (!this.fileType.includes(lastSubstring(item.name, ’.’))) { flag = false tip = ’ 文件類型不可上傳’ } }) if (!flag) { message(’error’, tip) } return flag }, // 提交附件 submitUpload() { if (this.checkFile()) { console.log(’上傳附件...’) this.$refs.upload.submit() } else { console.log(’取消上傳’) } }, // 自定義文件上傳方法 uploadFile(file) { // 把文件放入 FormData 進行提交 const param = new FormData() param.append(’files’, file.file) uploadFile(param).then(response => { // TODO 一些關閉彈框,上傳成功提示等 }) }, // 移除附件 handleRemove(file, fileList) { console.log(’移除附件...’) }, // 附件上傳失敗,打印下失敗原因 onError(err) { message(’error’, ’附件上傳失敗’) console.log(err) }, // 字符串重組 strRebuild(str) { return strRebuild(str) } }}

工具類 JS

strUtil.js

// 字符串相關工具類// 數組根據分隔符重組為字符串export function strRebuild(arr, split) { if (arr === undefined || arr === null || !(arr instanceof Array) || arr.length === 0) { return ’’ } if (split === undefined || split === null) { split = ’,’ } var str = ’’ arr.forEach((v, i) => { if (i === arr.length - 1) { str = str + v } else { str = str + v + split } }) return str}// 截取最后一個特定字符后面的字符串export function lastSubstring(str, split) { if (str === undefined || str === null || split === undefined || split === null) { return ’’ } return str.substring(str.lastIndexOf(split) + 1)}

message.js

import { Message } from ’element-ui’// 提示封裝 type 提示類型, msg 提示信息,duration 持續時間export function message(type, msg, duration) { Message({ message: msg || ’success’, type: type || ’success’, duration: duration || 5 * 1000 })}// 帶刪除鍵提示,duration 為 0 時,不會自動消失// 提示封裝 type 提示類型, msg 提示信息,duration 持續時間export function messageShowClose(type, msg, duration) { Message({ message: msg || ’success’, type: type || ’success’, duration: duration || 0, showClose: true })}

API

// 附件上傳export function uploadFile(file) { return request({ url: ’/uploadFile’, method: ’post’, headers: { ’Content-Type’: ’multipart/form-data; charset=utf-8’ }, data: file })}

后端接口

/** * 單文件上傳 * @param files 接收文件要以數組接收 * @return */@PostMapping(value='/uploadFile')public void uploadFile(@RequestBody MultipartFile[] files) { // TODO}

更多文章可以點擊《Vue.js前端組件學習教程》學習閱讀。

關于vue.js組件的教程,請大家點擊專題vue.js組件學習教程進行學習。

更多vue學習教程請閱讀專題《vue實戰教程》

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美在线看片| 国产99精品一区| 国产精品99一区二区三| 最新亚洲国产| 91亚洲人成网污www| 国产农村妇女精品一二区| 亚洲一区欧美激情| 福利一区在线| 青青青国产精品| 在线看片不卡| 在线一区av| 国产精品黄网站| 最新国产精品视频| 在线观看免费一区二区| 日韩av午夜在线观看| 国产一区二区精品福利地址| 国产精品久久亚洲不卡| 国内亚洲精品| 精品久久精品| 久久国产乱子精品免费女| 九九综合九九| 日本免费久久| 精品99久久| 卡一卡二国产精品| 日韩av影院| 日韩av一区二区在线影视| 在线国产一区二区| 久久久精品网| 日韩欧美精品一区| 亚洲在线观看| 久久久噜噜噜| 国产综合亚洲精品一区二| 精品国产第一福利网站| 国产高清视频一区二区| 日产欧产美韩系列久久99| 国产韩日影视精品| 狠狠干综合网| 亚洲一二三区视频| 亚洲精品一级二级三级| 视频一区二区三区在线| 91久久国产| 亚洲一区欧美二区| 免费美女久久99| 欧美日韩一区二区三区视频播放| 精品三级久久久| 精品国产午夜肉伦伦影院| 久久亚洲精精品中文字幕| 国产极品久久久久久久久波多结野 | 日韩avvvv在线播放| 综合亚洲视频| 国产精品一区2区3区| 国产精品一级在线观看| 91综合久久爱com| 久久精品一本| 在线日韩av| 羞羞答答国产精品www一本| 亚洲一区二区免费在线观看| 日韩一区亚洲二区| 另类国产ts人妖高潮视频| 日韩午夜视频在线| 大香伊人久久精品一区二区 | 久久精品国产亚洲一区二区三区| 国产日韩欧美一区在线| 免费一区二区三区在线视频| 免费看一区二区三区| 麻豆视频一区二区| 免费在线小视频| 美女久久一区| jizzjizz中国精品麻豆| 久久久久久久久久久妇女 | 亚洲欧洲日韩| 樱桃视频成人在线观看| 伊人成人在线视频| 久久gogo国模啪啪裸体| 免费观看不卡av| 国产精品久久久久77777丨| 在线亚洲人成| 国产精品夜夜夜| 欧美二三四区| 国产精品久久久久av蜜臀| 国产精品一区二区精品视频观看| 日本а中文在线天堂| 国产精品日韩| 国产不卡人人| 久久国际精品| 日韩一二三区在线观看| 黑人精品一区| 久久久91麻豆精品国产一区| 亚洲一级影院| 成人小电影网站| 国产一区二区三区精品在线观看| 亚洲精品无吗| 一区二区亚洲视频| 日韩中文字幕一区二区三区| 美女国产精品| av一区在线| 蜜桃av.网站在线观看| 日本精品一区二区三区在线观看视频| 91精品一区二区三区综合| 欧美a在线观看| 久久99影视| 蜜桃久久久久| 国产 日韩 欧美 综合 一区| 日韩激情网站| 久久国产视频网| 国产精品嫩模av在线| 青草国产精品| 欧美韩一区二区| 国产情侣一区| 国产日韩一区| 色综合视频一区二区三区日韩 | 欧美精品国产白浆久久久久| 欧美中文字幕一区二区| 亚洲国产福利| 精品亚洲美女网站| 国产亚洲高清视频| 亚洲精选成人| 国产精品亚洲一区二区在线观看| 日韩高清中文字幕一区| 在线精品国产亚洲| 国产美女久久| 国产精品亚洲一区二区三区在线观看| 成人日韩在线观看| 在线免费观看亚洲| 欧美激情福利| 国产粉嫩在线观看| 欧美日韩水蜜桃| 亚洲伊人精品酒店| 国产精品天天看天天狠| 成人国产精品一区二区免费麻豆| 国内揄拍国内精品久久| 欧洲在线一区| 日本不卡高清| 99免费精品| 欧美一区成人| 日韩午夜av| 久久一区视频| 亚洲欧美久久久| 丰满少妇一区| 日韩欧美精品一区二区综合视频| 精品欠久久久中文字幕加勒比| 日韩影片在线观看| 国产videos久久| 蜜芽一区二区三区| 日韩免费一区| 国产aⅴ精品一区二区四区| 久久精品色播| 欧美日韩激情在线一区二区三区| 亚洲激情二区| 欧美亚洲色图校园春色| 麻豆精品蜜桃视频网站| 久久97视频| 亚洲五月婷婷| 日韩av一级片| 午夜日韩福利| 麻豆国产精品| 亚洲精品电影| 亚洲精品免费观看| 欧美aⅴ一区二区三区视频| sm久久捆绑调教精品一区| 欧美二区视频| 91伊人久久| 欧美亚洲专区| 青草国产精品| 中文字幕av亚洲精品一部二部| 日韩精品免费一区二区夜夜嗨| 91福利精品在线观看| 国产不卡人人| 亚洲欧美日本国产| 在线人成日本视频| 国产精品99久久久久久董美香| 日韩久久视频| 欧美久久一区二区三区| 免费久久久久久久久| 日韩在线黄色| 日韩另类视频| 国产一区二区三区久久| 蜜桃视频免费观看一区| 成人精品高清在线视频| 亚洲人亚洲人色久| 亚州av乱码久久精品蜜桃| 国产乱人伦丫前精品视频| 狠狠干成人综合网| 丝袜诱惑一区二区| 91亚洲人成网污www| 日韩动漫一区| 91久久中文| 久久蜜桃av| 久久精品123| 色偷偷偷在线视频播放| 国产日韩欧美在线播放不卡| 久久久亚洲欧洲日产| 国产成人久久精品一区二区三区| 日韩精品首页| 精品少妇一区| 精品国产亚洲日本| 荡女精品导航| 久久精品卡一| 在线综合亚洲| 最新国产精品|