批量文件上傳是當(dāng)代Web應(yīng)用程序中很普遍的任務(wù)。在Vue框架下,我們可以使用vue-file-upload組件來(lái)實(shí)現(xiàn)文件的批量上傳。這個(gè)組件基于Vue2.x版本開發(fā),支持多種文件上傳方式,從普通的文件上傳到拖放上傳,支持顯示上傳進(jìn)度和錯(cuò)誤信息。
npm install vue-file-upload --save
在Vue的單文件組件中引入上傳組件如下:
<template> <div> <vue-simple-upload url="http://localhost:8080/api/fileupload" ref="uploadFile" :multiple="true"> <button class="btn btn-primary"> Select files </button> </vue-simple-upload> <button class="btn btn-success" @click="onUpload"> Upload Files </button> </div> </template> <script> import vueSimpleUpload from 'vue-file-upload'; export default { components: { vueSimpleUpload }, methods: { onUpload () { this.$refs.uploadFile.upload() .then(response =>{ console.log('response', response) }) .catch(error =>{ console.error('Error', error) }) } } } </script>
上述代碼中的URL是我們要上傳的文件的地址。我們可以使用選定功能或者拖放功能來(lái)選擇文件。在onUpload方法中,我們使用upload函數(shù)來(lái)提交文件的。我們可以增加事件處理程序來(lái)處理進(jìn)度更新等事件:
this.$refs.uploadFile.on('progress', this.progressHandler)
我們還可以控制上傳文件的類型和大小。可以使用accept屬性來(lái)限制文件擴(kuò)展名,而max-file-size屬性可用于設(shè)置文件大小上限:
<vue-simple-upload url="http://localhost:8080/api/fileupload" accept=".pdf,.doc,.docx,.ppt,.pptx,.xls,.xlsx" :max-file-size="1024" ref="uploadFile" :multiple="true"> <button class="btn btn-primary"> Select files </button> </vue-simple-upload>
上面的代碼中,我們限制文件大小為1MB,并且僅接受PDF、Word、Excel和PPT文件。如果要上傳多個(gè)文件,我們需要使用multiple屬性。
總結(jié):Vue框架提供了vue-file-upload組件來(lái)幫助我們輕松地實(shí)現(xiàn)文件上傳。使用Vue組件的好處是我們可以將每個(gè)組件分為不同的功能模塊,提高組件的可重用性和可維護(hù)性。我們可以用這個(gè)組件來(lái)定義上傳的類型和大小,并且可以很方便地設(shè)置進(jìn)度管理和事件處理程序。