我正在为图像上传开发一个小功能。此图像上传在客户端调整选定图片的大小并上传调整大小的图像。
这可行,但浏览器会在“调整大小功能”之间挂起很多。这是我的代码:
function manageImage(file) {
if (!file) return;
var mime = file.type;
var src = URL.createObjectURL(file);
loadImage.parseMetaData(file, function (data) {
var options = { maxWidth: 1920, maxHeight: 1920, canvas: true };
if (data.exif) {
options.orientation = data.exif.get('Orientation');
}
loadImage(file,
function (img, test) {
loaded++;
var formData = new FormData();
formData.append("image", dataURI);
$.ajax({
url: "/URL",
data: formData,
cache: false,
contentType: false,
processData: false,
async: false,
type: "POST",
success: function (resp) {
}
}).error(function () {
}).done(function () {
if (loaded < checkedFiles.length) {
manageImage(files[loaded]);
} else {
//FINISHED
}
});
},
options);
});
}
manageImage(files[0]);
这个函数是递归的,因为我在迭代时遇到了一些问题(浏览器挂起、内存和 cpu 使用)。
此外,我正在将此库用于 EXIF-Data 和手机上的正确方向: https ://github.com/blueimp/JavaScript-Load-Image
用一两张选定的图片(例如 7MB)效果很好,但我想上传大概 50 张图片。
如果有人能给我一个线索,那就太好了?!