Closed lvhh0 closed 7 years ago
返回HTML:
File type is not supported!
你说的太乱不清除啥意思,如果返回File type is not supported!
就是说你传的不是图片或者不支持的格式。
@buaazp 是我传的不是图片的原因,我传的是一个图片的blob对象,所以会报File type is not supported!这个错。
图片的blob对象是指?看图你应该用的是multipart/form提交的
@buaazp 用户上传头像的时候我用copperjs让用户截取部分图片,截取后的图片得到一个blob对象,然后用ajax提交到服务器上传图片。 js代码:
// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`
cropper.getCroppedCanvas().toBlob(function (blob) {
var formData = new FormData();
formData.append('croppedImage', blob);
// Use `jQuery.ajax` method
$.ajax('/path/to/upload', {
method: "POST",
data: formData,
processData: false,
contentType: false,
success: function () {
console.log('Upload success');
},
error: function () {
console.log('Upload error');
}
});
});
你这样构造的form表单没有Content-Type,也没有文件名,所以zimg无法判断你上传的东西是什么类型。 建议这种拿到blob的数据走raw-post方式上传而不是表单形式。 如果一定要发表单请求,你需要把相关的字段(filename=xxx.xx)不全,不然没法判断数据类型。
multipart检查文件类型是否合法的代码在这儿: https://github.com/buaazp/zimg/blob/master/src/zhttpd.c#L428
@buaazp OK,我明白了。
php接收的参数为blob(HTMLCanvasElement.toBlob())对象: {"name":"blob","type":"image\/png","tmp_name":"H:\xampp\tmp\phpDFEB.tmp","error":0,"size":244001}
返回HTML:
File: blob
File type is not supported!
Upload Failed!
图片的blob对象是我用js截取的一部分图片。
结论:应该是不支持blob的图片