ajaxForm を介して画像をアップロードするためのフォームを取得しました。ユーザーがデスクトップから写真をドロップできるように機能を実装しました (HTML5 ドラッグ & ドロップ)。写真が「小さい」場合、すべてが正常に機能します-2MBとしましょう。4 MB より大きい写真をアップロードしようとすると、問題が発生します。Chrome ブラウザがクラッシュします。
Ajaxフォーム
$(document).ready(function() {
$("#uploadForm").ajaxForm({
iframe: true,
dataType:"json",
beforeSubmit: function () {
$("#post .button.save").prop("disabled",true).val("Uploading...");
},
success: function (result) {
$("#FilePhotoString").val("");
$("#post").css({
"background": 'url(' + result + ') no-repeat center center',
"display": "block",
"height": $("body").height(),
"background-size": "cover"
});
$("img").attr("src",result).load(function() {
$('input[name="ImageFilePath"]').attr('value', result);
$("#post .button.save.now").prop("disabled",false).val("Publish now");
$("#post .button.save.later").prop("disabled",false).val("Publish later");
});
}
});
});
落とす
document.body.addEventListener('dragover',function(event) { event.preventDefault(); },false);
document.querySelector('#content').addEventListener('drop', function(event) {
event.preventDefault();
var reader = new FileReader();
reader.onload = function(evt) {
$("#FilePhotoString").val(evt.target.result);
$("#uploadForm").submit();
};
reader.readAsDataURL(event.dataTransfer.files[0]);
}, false);
成功時に返される結果は、アップロードされた写真のパスです。ブラウザがクラッシュしないようにするにはどうすればよいですか?