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
属性,点击提交的时候,将数据属性与资源属性一起提交即可!