首先说input标签 + FormData是可以上传多个文件到服务器的,但是IOS上照片一般都比较大,如果不做压缩,每次上传都失败,很是无奈。在网上看了一下,有很多压缩的方法,感觉比较麻烦,于是结合H5+的文档利用FormData自己写了一个上传的方法。
思路
1.拍照或者选择图片并获取图片的路径
2.压缩图片
3.找到压缩完的图片先转换成base64再转换成可以添加到FormData上传的File
4.添加数据上传
实现Demo
js部分:
//综合二次压缩 +文件访问 + 文件转换base64 +转换 blob类型的File
compressPicAndAttData = function(picPath,funsuc){//压缩
plus.zip.compressImage(
{
src:picPath,
dst:"_doc/"+ (new Date()).valueOf() +".jpg",
quality:10
},
function(suc){
var newPath = suc.target;
var newSize = suc.size;
console.log("压缩完路径:" + newPath + "文件大小:" + newSize);
if(newSize > 1000000){//判断文件过大进行二次压缩
plus.zip.compressImage(//二次压缩,一般经过2次压缩文件一般不会超过500K
{
src:newPath,
dst:"_doc/"+ (n