使用element上传图片与视频
2019-08-15 本文已影响0人
涵子_
1.最近产品来了一个需求,在原有上传图片的基础上和也可以上传视频一起。
![](https://img.haomeiwen.com/i8810476/ed44973e804508ae.png)
![](https://img.haomeiwen.com/i8810476/0daaf3e6951c16b0.jpg)
2.element的upload是可以上传文件的,只要不限定上传的文件类型都可以成功。但是
![](https://img.haomeiwen.com/i8810476/7d5353996a585648.jpg)
![](https://img.haomeiwen.com/i8810476/94a0b86026bb4de7.jpg)
3.这时候我就有个想法了,这个组件有没有上传时候可以把图片和视频分开渲染不就可以啦
![](https://img.haomeiwen.com/i8810476/7fb09a5902d5c8a9.png)
4.虽然这个方法可行,但是本身这个项目写的有点早,版本更不上。。。取巧的方法没有了。
![](https://img.haomeiwen.com/i8810476/3290de157225e8ef.jpg)
![](https://img.haomeiwen.com/i8810476/5c9bd13d616078fb.jpg)
5.绞尽脑汁 还是得操作原生dom,最终效果如下
![](https://img.haomeiwen.com/i8810476/5695f4d8e1d8d4bb.png)
![](https://img.haomeiwen.com/i8810476/f3bf36c8ee663c91.png)
![](https://img.haomeiwen.com/i8810476/8dff3900dedff7be.png)
![](https://img.haomeiwen.com/i8810476/c82d84f2e9f58b7c.png)
6.这个是完整的上传图片视频的代码内容
![](https://img.haomeiwen.com/i8810476/1052fc66cfaf58b4.png)
7. ref vue基本用法,获取当前dom元素,对于想操作dom的同学 这个比较给力!
on-success 文件上传成功时的钩子 对应的方法 function(response, file, fileList)
on-preview 点击文件列表中已上传的文件时的钩子 对应的方法 function(file)
on-remove 文件列表移除文件时的钩子 对应的方法 function(file, fileList)
before-upload 上传文件之前的钩子,参数为上传的文件 function(file)
file-list 储存的上传文件列表 数组形式
data 请求接口传给后台的参数 对象的形式
list-type 有3种展示样式 picture-card 为当前展示的样式
8.接下来就是一个完整的上传步骤
![](https://img.haomeiwen.com/i8810476/b2395c78b22645a5.jpg)
![](https://img.haomeiwen.com/i8810476/9a8e379133ff4e22.jpg)
![](https://img.haomeiwen.com/i8810476/e18324f0e2e21767.jpg)
![](https://img.haomeiwen.com/i8810476/31aa553a089edc81.jpg)
9. 这就实现了上传图片视频一起,虽然上传过程很艰难,但是功能是可以实现的。
后记:视频与图片上传成功后,我们关掉页面后,在进去页面,是要重新渲染的。这时候 也要操作dom 获取到当前ref下的全部li列表 在通过遍历 把是视频的链接换成video标签
![](https://img.haomeiwen.com/i8810476/6b9287221bb2feb8.jpg)
10.这样就OK了!