element的上传如何获取路径_利用FileReader读取element-ui中上传组件el-upload上传的文件,实现先本地预览后上传至服务器(Vue)...

用elment-ui的上传组件上传用户头像时发现它的图片预览是需要先将图片发送到服务器,返回一个图片地址,然后根据这个地址在头像区显示,但是我想要的是:

选取头像,后立即在头像区显示,(不涉及图片剪辑和图片区域选取),而不是先上传到服务器。那么就需要获取一个图片在本地的地址。


- 浏览器出于安全考虑不让直接获取本地图片的路径,那我们就使用FileReader ( 或window.URL )去读取选择好的图片,返回一个DataURL,然后根据这个URL显示图片。
- 那么在el-upload组件中如何获取到选好的图片文件呢?el-upload组件的input标签是包在里面的,你只能在源码里看到它的input标签,首先我想到的是去源码里给input标签加个id,根据id找到这个元素,然后获取file,后来发现根本行不通,我无法通过id获取到这个元素,那么该怎么办呢? ![](https://img2018.cnblogs.com/blog/1702009/201907/1702009-20190712100012135-489339134.png)
- 经过多次尝试后发现,关闭自动上传属性后再去选取图片唯一能触发的钩子函数是on-change,注意:before-upload需要提交文件后才能触发,但是是在上传之前。on-change绑定的函数会有一个输入型参数,也就是event,但是这个event里面没有target属性,那该如何是好!我怎么获取input元素,不要着急,你会发现里面还有一个raw属性(后来发现file参数中也有raw属性),它就是你要的选取的文件数据! 根本不需要用document.getElementById(

你可能感兴趣的:(element的上传如何获取路径_利用FileReader读取element-ui中上传组件el-upload上传的文件,实现先本地预览后上传至服务器(Vue)...)