做了一个录入信息的程序,需要拍照, 安卓都没有问题,可以通过uni.chooseImage的属性sizeType:['compressed']来实现图片压缩。
可是后边有苹果手机用不需要使用,就发布了html5网页的版本,发现在上传图片时候无法上传或跳出页面,经测试html5页面不支持自动压缩图片尺寸,根据官方提示写了个压缩方法。在上传时压缩并转成base64传输,很好用。
参考文章:http://ask.dcloud.net.cn/question/2089
说下我的做法,我先去下载了LocalResizeIMG
然后直接在项目中引用就可以使用了,项目代码如下:
我只用了很简单的压缩功能,这个lrz很强大,大家可以根据实际情况使用。
//注意用lrz.all.bundle.js
import lrz from "@/utils/lrz.all.bundle.js";
//压缩图片及上传
postdata={"a":"upimg"};
lrz(imgpath, {
width: 1200
}).then(function (rst) {
//这里上传base64
postdata.base64=rst.base64;
uni.showLoading({
title:"正在上传"
});
console.log(postdata);
//下边是我自己写的一个post请求封装,因为我要携带用不的身份信息
this.post(postdata,function(res){
uni.hideLoading();
//写自己的处理程序就行啦
});
}).catch(function(errmsg){
uni.hideLoading();
uni.showModal({
title:"压缩失败",
showCancel:false,
content:"图片压缩失败"
});
});
第一次分享,希望大家不要喷。
0 个回复