1

Railsアプリケーションで使用するためにデモを少し変更しました。プラグインはChromeとFFで正常に動作しますが、IEで問題があります。

IE(全バージョン)では、複数のファイルを1つずつ選択してアップロードを開始します。プラグインは、1つのファイルを除くすべてをアップロードします。アップロードする単一のファイルを選択した場合、何も起こりません。

これがmain.jsの内容です

$(function () {
    'use strict';

    // Initialize the jQuery File Upload widget:
    $('#fileupload').fileupload();

    // Enable iframe cross-domain access via redirect option:
    $('#fileupload').fileupload(
        'option',
        'redirect',
        window.location.href.replace(
            /\/[^\/]*$/,
            '/cors/result.html?%s'
        )
    );

    //Reference :
    // https://github.com/blueimp/jQuery-File-Upload/issues/1324
    // https://github.com/blueimp/jQuery-File-Upload/issues/841
    $('#fileupload').bind('fileuploadsubmit', function (e, data) {
        var inputs = data.context.find(':input');
        if (inputs.filter('[required][value=""]').first().focus().length) {
            return false;
        }
        data.formData = inputs.serializeArray();
    });

    $('#fileupload').bind('fileuploadadd', function (e, data) {
        alert('file added');
    });


    $('#fileupload').fileupload('option', {
        url: '/gallery',
        maxFileSize: 5000000,
        acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
        process: [
            {
                action: 'load',
                fileTypes: /^image\/(gif|jpeg|png)$/,
                maxFileSize: 20000000 // 20MB
            },
            {
                action: 'resize',
                maxWidth: 1440,
                maxHeight: 900
            },
            {
                action: 'save'
            }
        ]
    }).bind('fileuploadstop', function (e, data) {
        alert('files uploaded');
      });

});

デモHTMLから、[ファイルの追加]ボタンと[アップロードの開始]ボタンとプログレスバー関連のコードを除くすべてを削除しました。

誰かがこの問題を修正するのを手伝ってくれませんか?

4

1 に答える 1

0

最後に@Jigneshの助けを借りて根本的な原因を見つけました。

このアプリケーションでは、アップロードするファイルを選択する 2 つの方法を提供することで動作をカスタマイズしました: 1) + [ファイルを追加] ボタン 2) リンク

観察された動作: [ + ファイルの追加] ボタンを手動でクリックしてアップロードされたすべてのファイルが機能し、正常にアップロードされます。

ただし、リンクを使用して選択されたファイルはそうではありません。その理由は、リンクが PROGRAMATICALLYで [ + ファイルの追加] ボタンのCLICKイベントをトリガーするためです。これは IE ではサポートされていないため、リンクを使用してアップロード用に選択されたファイルに対して POST 要求は開始されません。

また、コンソールにはエラーが表示されます: IE の場合、上記の観察された動作に対して SCRIPT5 アクセスが拒否されました。

参考文献:

  1. https://stackoverflow.com/a/1829817
  2. https://github.com/blueimp/jQuery-File-Upload/issues/1382
  3. https://github.com/blueimp/jQuery-File-Upload/issues/457
于 2012-09-14T13:15:39.957 に答える