日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > vue >内容正文

vue

Vue+ElementUI实现文件的下载与上传

發(fā)布時間:2025/3/20 vue 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vue+ElementUI实现文件的下载与上传 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? 當(dāng)需要批量導(dǎo)入的時候,一般會提供下載示例文件的功能。實(shí)現(xiàn)下載功能直接使用<a>標(biāo)簽即可。

<a class='download' :href='downloadhttp' download="" title="下載">下載</a>

downloadhttp為文件下載的路徑,download屬性是為了避免瀏覽器直接執(zhí)行打開而不下載。路徑是下載文件很重要的組成部分,一般為了方便維護(hù)都會將文件放在服務(wù)器,路徑需要在apiconfig.js文件中判斷是測試端還是服務(wù)器端,主要思路是將兩端設(shè)置不同的baseUrl,在此不再贅述。downloadhttp = baseUrl + 路徑相同部分。在Linux服務(wù)器上最好將文件名設(shè)置為英文,中文在解碼時可能會出現(xiàn)偏差,導(dǎo)致文件尋找失敗。

? ?文件的上傳主要使用element中的el-upload。

<el-uploadclass="upload-demo"action="https://jsonplaceholder.typicode.com/posts/":on-preview="handlePreview":on-remove="handleRemove":before-remove="beforeRemove"multiple:limit="3":on-exceed="handleExceed":file-list="fileList"><el-button size="small" type="primary">點(diǎn)擊上傳</el-button><div slot="tip" class="el-upload__tip">只能上傳jpg/png文件,且不超過500kb</div> </el-upload> <script>export default {data() {return {fileList: [{name: 'food.jpeg', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'}, {name: 'food2.jpeg', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'}]};},methods: {handleRemove(file, fileList) {console.log(file, fileList);},handlePreview(file) {console.log(file);},handleExceed(files, fileList) {this.$message.warning(`當(dāng)前限制選擇 3 個文件,本次選擇了 ${files.length} 個文件,共選擇了 ${files.length + fileList.length} 個文件`);},beforeRemove(file, fileList) {return this.$confirm(`確定移除 ${ file.name }?`);}}} </script>

其中action是必須的參數(shù),用來寫傳輸?shù)慕涌诘刂贰S玫谋容^多的是on-success,這個鉤子為上傳成功時的回調(diào),當(dāng)傳輸完成后即可調(diào)用。無論后臺接口返回何值,只要成功上傳,就會調(diào)用該函數(shù)。但是在實(shí)際應(yīng)用中,由于Excel填寫的格式不正確等問題,會導(dǎo)致后臺解析失敗,返回success = 0.這時我們需要使用該方法來進(jìn)行后續(xù)的操作。

<el-uploadclass="upload-demo"action="":on-success='handlesuccess'multiple:limit="3":on-exceed="handleExceed":file-list="fileList"><el-button size="small" type="primary">點(diǎn)擊上傳</el-button> </el-upload> <script>export default {data() {return {fileList: []//此數(shù)組中存入所有提交的文檔信息 };},methods: {handleExceed(files, fileList) {this.$message.warning(`當(dāng)前限制選擇 3 個文件,本次選擇了 ${files.length} 個文件,共選擇了 ${files.length + fileList.length} 個文件`);},handlesuccess(response, file, fileList){//response即為后臺返回的全部內(nèi)容if(response.success === 1){console.log('解析成功')}else{console.log('解析失敗')}}}} </script>

其次使用頻率較高的為clearFiles方法,用來清除已選中的所有文檔信息。上傳時在dialog中進(jìn)行,當(dāng)關(guān)閉當(dāng)前dialog,再次打開時需要清空上一次的數(shù)據(jù),如果是表格表單類型,可直接將其綁定的數(shù)組對象清空,若是文件類型,則需要clearFiles方法來進(jìn)行清除

轉(zhuǎn)載于:https://www.cnblogs.com/tomatoto/p/9594638.html

總結(jié)

以上是生活随笔為你收集整理的Vue+ElementUI实现文件的下载与上传的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。