我有个方法是相册里多选图片,遍历多选的图片,判断图片的大小,如果超过500k就对图片进行压缩,但是读取图片信息的方法是异步的,导致最后我收集到图片的数组数据会丢失图片,我觉得是异步的问题导致,不知道大神们对于这种需求有什么处理方案,有没有其他获取图片大小的方法
线谢过各位帮忙的大神
function appendByGallery(){
plus.gallery.pick(function(e){
for(var i in e.files){
var p = plus.io.convertLocalFileSystemURL(e.files[i]);
//appendFile(p);
//文件对象获取,并进行大小判断
var filePath = p;
if(plus.os.name=='iOS'){
filePath = 'file://'+p;
}
plus.io.resolveLocalFileSystemURL( filePath, function( entry ) {
entry.file( function(file){
var fileReader = new plus.io.FileReader();
//alert("getFile:" + JSON.stringify(file));
//大于500kb
var max_kb = 500*1024;
if(file.size>max_kb){
imgZip(file.fullPath);
}else{
appendFile(file.fullPath);
};
} );
}, function ( e ) {
alert( "图片读取失败: " + e.message );
});
}
},
function ( e ) {
console.log(e);
},
{filter:"image",multiple:true});
}
3 个回复
上海Allen (作者)
相册多选图片大家都是怎么处理的
z***@163.com - 解决iOS离线打包相关项目及问题
遇到同样的问题,简直了,各位都是怎么处理的?
3***@qq.com
可以使用递归函数 处理上传