图片上传问题

在上传图片时     对图片进行裁剪 得到  canvas 画布

var cas = $('#tailoringImg').cropper('getCroppedCanvas');//获取被裁剪后的canvas
var dataURL = cas.toDataURL('image/jpg'); //转换为base64地址形式
var file = dataURLtoFile(dataURL);

//将base64格式图片转换为文件形式
function dataURLtoFile(dataurl) {
     var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
     bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
     while(n--){
         u8arr[n] = bstr.charCodeAt(n);
     }
     return new File([u8arr], {type:mime});
}

canvas 转换成base64 位编码 在把他 转换成 file 文件  用ajax formDate 上传文件 

后端用    //图片上传,必须放在第一行,否则后面的信息都接收不到
        List<UploadFile> files = getFiles();
        getFiles();
        接收文件  文件是上传上去了  但图片没有消息  
        
        安卓可以   iPhone 不可以


评论区

无无无

2018-09-21 10:23

回复下 解决办法 把 return new File([u8arr], {type:mime}); 换成 return new Blob([u8arr], {type:mime}); 就可以了 这样 ios 上传图片就不会出现问题了

热门反馈

扫码入社