vue中-iview的upload上传图片-获取本地图片绝对路径-在前端实现图片预览

在用iview的upload上传图片的时候,想要实现图片的预览。 但是在iview给的例子中,是每上传一个图片触发一次上传事件,调一次接口,后台将图片存入数据库,再回传给前端,这样实现图片在前端的显示。这个方法对于上传多张图片,无疑很不现实。 于是就有了下面的方法。 想要实现上传多张图片,上传的图依次显示出来,点击提交,实现同时上传,只调一次接口,后台一次性将多张图片存入数据库。 在图片上传前 'handleBeforeUpload' 事件中加入以下代码,获取的_base64即为本地图片的绝对路径,将其存起来,在赋值到img的src路径,即可实现图片在上传前的显示,实现图片的预览 const reader = new FileReader() reader.readAsDataURL(file) reader.onload = () => { const _base64 = reader.result console.log(_base64) } 整体代码copy //图片上传前事件 handleBeforeUpload (file) { this.file = file //需要传给后台的file文件 const reader = new FileReader() reader.readAsDataURL(file) reader.onload = () => { const _base64 = reader.result this.imgUrl = _base64 //将_base64赋值给图片的src,实现图片预览 } return false//阻止图片继续上传,使得form表单提交时统一上传 }

June 10, 2019 · 1 min · jiezi

小程序自定义图片预览和多图下载的实现

小程序开发中图片列表的需求再常见不过了,通常都会配合大图预览和图片下载的功能但是微信又没有提供可自定义的图片预览功能,有时候会有需求在预览大图的时候收藏或者下载啥的用 wx.previewImage 就不太合适了下面提供了一个 照片墙实现自定义图片预览和多图下载 的实现方式,有类似需求的同学可以尝试一下有问题也欢迎提出 GITHUBmp-photo-album小程序照片墙/自定义大图预览/多图下载使用安装npm install –save –production mp-photo-album引入{ “usingComponents”: { “mp-photo-album”: “/miniprogram_npm/mp-photo-album/index” }}功能1. 照片列表/滚动加载2. 大图预览/手势缩放/下载/自定义操作wxml<comp list="{{list}}" bindlike=“like” bindclose=“finish” likeTitle=“收藏”></comp>图片列表数据结构[{ src: ‘https://raw.githubusercontent.com/panmenglin/mp-photo-album/transform/common/images/Desert1.jpg’, // 原图 previewSrc: ‘https://raw.githubusercontent.com/panmenglin/mp-photo-album/transform/common/images/Desert1_1280.jpg’, // 预览大图 listSrc: ‘https://raw.githubusercontent.com/panmenglin/mp-photo-album/transform/common/images/Desert1_200.jpg’, // 列表小图 desc: ‘图片描述’, // 图片描述 check: false // 是否选中}]配置likeTitle 自定义按钮文字bindlike自定义按钮事件bindclose关闭预览回调3. 多选保存到相册选择多图,点击下载保存到相册,最多同时9张wxml<comp list="{{list}}" option="{{option}}" bindfinish=“finish”></comp><view wx:if="{{option !== ‘download’}}" bindtap=“select”>选择</view><view wx:if="{{option === ‘download’}}" bindtap=“finish”>完成</view>配置option [默认] normal用来切换操作方式切换为 download 时,则可以选择并进行下载bindfinish点击下载的回调

January 5, 2019 · 1 min · jiezi