画像アップロード用の小さな機能を開発しています。この画像アップロードでは、クライアントで選択した画像のサイズを変更し、サイズ変更した画像をアップロードします。
これは機能しますが、ブラウザは「サイズ変更機能」の間にハングアップします。これは私のコードです:
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 データと携帯電話での正しい向きに使用しています: https://github.com/blueimp/JavaScript-Load-Image
1 つまたは 2 つの写真 (例: 7MB) を選択すると完璧に動作しますが、おそらく 50 枚の写真をアップロードしたいと考えています。
誰かが私に手がかりを与えることができれば素晴らしいでしょう?!