使用input file上传图片,然后判断当图片大于1M的时候再通过plus.zip.compress对图片进行压缩,但是每次上传的大于1M的图片都报错:图片不存在,大概知道是压缩的时候图片的路径不准确,但是不知道具体的路径是要怎么写,代码如下:
//获取图片路径
fileElem = files[0];//input file选取的图片对象
pic_size = fileElem.size;//图片大小
//获取图片路径,解决兼容性,此处url获取到的是类似:url=blob:file:///f6bdb727-3cdd-48cc-9e6
if (window.createObjectURL!=undefined) { // basic
url = window.createObjectURL(fileElem) ;
} else if (window.URL!=undefined) { // mozilla(firefox)
url = window.URL.createObjectURL(fileElem) ;
} else if (window.webkitURL!=undefined) { // webkit or chrome
url = window.webkitURL.createObjectURL(fileElem) ;
}
//使用url压缩,每次都是执行到了失败回调
plus.zip.compress(url,'',function(res){
console.log('压缩后的数据==='+JSON.stringify(res))
},function(err){
console.log('压缩失败==='+JSON.stringify(err))//执行这里:{"message":"文件不存在","code":-4}
});
有没有做过的老铁能不能分享下经验,还有plus.zip.compress第二个参数,官方说是压缩后保存的Zip文件路径,如果我不想保存压缩的文件,我是直接不填这个参数,还是说要用‘ ’这样的空字符占个位
前端_小白
- 发布:2018-04-12 01:26
- 更新:2018-05-15 21:28
- 阅读:1480
5 个回复
9***@qq.com - PHP,PYTHON,andriod,iOS啥都搞的野生程序猿
如果后端好协调的话 感觉还是base64方便写
N丶藍
我用的 plus.zip.compressImage 压缩,第一个是个对象,{src:url, dest:url},第二个参数是压缩成功的回调,有个event对象
前端_小白 (作者)
你的上传的代码能给我看下不,我的老是说我的文件不存在,好像是拿到的文件路径不对,要么你把你上传之后获取到的文件路径给我看下,谢谢!!!
2018-04-17 11:41
9***@qq.com - PHP,PYTHON,andriod,iOS啥都搞的野生程序猿
我下周才写文件上传,不然就一起研究下了=.=
前端_小白 (作者)
你文件上传开始写了吗?
2018-04-17 11:41
N丶藍
回复 前端_小白:我是在外面声明的相对路径的dst,调用压缩方法后直接用相对路径取。
zipImage是封装的
plus.zip.compressImage
,压缩成功直接调用callback
小资电脑
兄弟,建议你用lrz压缩试试。 我就用的它。
老哥教教我
lrz有使用教程吗?
2018-05-15 21:30
小资电脑
百度
2018-05-15 21:31
N丶藍
回复 老哥教教我:lrz没维护了,生产环境慎用。
2018-05-16 14:45
老哥教教我
回复 N丶藍:好吧。
2018-05-16 15:01