0

画像アップロード用の小さな機能を開発しています。この画像アップロードでは、クライアントで選択した画像のサイズを変更し、サイズ変更した画像をアップロードします。

これは機能しますが、ブラウザは「サイズ変更機能」の間にハングアップします。これは私のコードです:

    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 枚の写真をアップロードしたいと考えています。

誰かが私に手がかりを与えることができれば素晴らしいでしょう?!

4

0 に答える 0