將以前項目中使用到的一個文件上傳組件提取出來,單獨作一個圖片上傳組件
(雖然如今有許多功能齊全的上傳組件,可是因爲關乎程序大小和精簡化,因此本身作一個簡化的上傳組件)javascript
項目地址: github地址vue
忽略圖片的內容,由於都是表情包java
下載依賴項/install dependenciesgit
npm installgithub
運行服務/run servernpm
npm run test後端
程序默認運行在3000端口: localhost:3000api
在全局註冊或者局部註冊完成後使用組件:app
<uploader :src="'/api/imgs'"></uploader>
(該組件源碼爲components文件夾下面的uploader.vue文件, 其他文件是搭建了一個簡易的框架和後端配置(爲了測試上傳進度))框架
Props:
src - 後臺文件上傳的地址, 在Demo中就是 '/api/imgs'
選取圖片:
支持PC端多選,若是移植到移動端根據各機型不一樣可能有差別
圖片預覽:
選取圖片後,腳本會將圖片轉成BASE64格式並傳給img標籤顯示
上傳
當點擊上傳按鈕時,將會遍歷全部選中的文件,並添加到自定義的FormData中, 代碼以下:
const formData = new FormData() this.files.forEach((item) => { formData.append(item.name, item.file) })
上傳的時候上傳進度將會已百分比以及進度條的形式顯示在上傳按鈕的右邊
MIT