vue获取待上传图片对象并显示图片
我们日常使用vue常用的框架如:iView、Element等上传时直接单独将资源上传上去再返回上传成功的资源信息。几乎现在只有在不使用api接口的时候才会想到让文件资源与数据一起传给服务器去处理,通常这时候我们采用form表单,并设置其enctype=multipart/form-data,但是如果我们既希望使用api发送请求,又喜欢数据携带资源,该如何处理呢?
期望效果
数据资源同步发送post请求,选择文件前如下:

选择图片后不直接上传,但是显示要上传的图片,且点击提交数据后资源与数据一起发送至服务器,如下:

下面一起来实现这种效果。
获取待上传图片对象
我这里使用的vue,如果你是用的jquery更好处理这个问题了。
模板代码:
1 | <FormItem label="图片"> |
vue代码:
1 | data(){ |
总得来说就是使用vue的ref参数直接操作input的点击事件触发来先获取待上传文件对象,然后使用FileReader来读取文件,将文件内容赋值给vue属性tempImg,然后图片src绑定了这个属性,达到了选择图片后立即显示的效果。
关于FileReader详细说明及用法:https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader
结语:图片对象我们都获取到了,与数据一起提交还成问题吗?讲这个图片对象赋给vue属性,点击提交的时候,将数据属性与资源属性一起提交即可!