将以前项目中使用到的一个文件上传组件提取出来,单独作一个图片上传组件
(虽然如今有许多功能齐全的上传组件,可是因为关乎程序大小和精简化,因此本身作一个简化的上传组件)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