2

次のコードは、以下で説明するように、特注の一連の要件を課そうとしています。私は使用しています

ここにJqueryファイルアップロードウィジェット

アップロードをファイル セット構造に制限し、このファイル セットを単一のマルチパート HTTP アップロードとしてサーバーに送信しようとしています。ユーザーがアップロード キューに特定のファイル タイプのみを追加するように制限されている「fileuploadchange」へのバインドを通じて、このファイル セットを強制することができました (この場合、一度に 1 つの TXT ファイルと 1 つの WAV ファイルしかアップロードできません。他の組み合わせは許可されません)。私の問題は、「fileuploadsubmit」へのバインドを使用してアップロードを開始することです。ユーザーが単一の選択インスタンスで TXT ファイルと WAV ファイルの両方を選択した場合は問題なく動作しますが、各ファイルを単一のファイル選択インスタンスとして選択すると、選択された 2 番目のファイルのみがアップロードされます。

.bind('fileuploadsubmit', function (e, data) {
        if($(".template-upload").length == 2){
            if(sent > 3){
                alert("Upload processing in progress. To upload another File-Set, please reset the form.");
                return false;
            }else if(sent == 3){
                sent++;
                return false;
            }else{
                if((data.files.length == 2)&&(sent == 0)){//Both files selected at once and work fine.
                    all_data = data;
                    sent = 2;
                }
                
                if(sent == 0){//get 1st file from single file selection and add to Global all_data variable for submission
                    all_data = data;
                    sent++;
                    return false;
                }else if(sent == 1){//get 2nd file from single file selection and add to Global all_data variable for submission
                    all_data['files'].push(data['files'][0]);
                    all_data['context'].push(data['context'][0]);
                    all_data['paramName'].push(data['paramName'][0]);
                    sent++;
                }
                
                if(sent == 2){//Only send when 2 files have been prepared in Global all_data variable
                    $("#loader_response").html("UPLOADING....");
                    sent++;
                    var jqXHR = all_data.submit();
                }
            }
        }else{
            alert("Only a file-set can be uploaded." + file_set_message);
            return false;
        }
    })

これを希望どおりに機能させるために、どんな助けも大歓迎です。

前もって感謝します。

編集:次のように問題を修正しました:

              }else if(sent == 1){//get 2nd file from single file selection and add to Global all_data variable for submission
                data['files'].push(all_data['files'][0]);
                data['context'].push(all_data['context'][0]);
                data['paramName'].push(all_data['paramName'][0]);
                sent++;
              }

all_data.submit() ではなく data.submit() が続きます

さらに編集: data.submit() の変更により、JQuery の「再帰が多すぎます」というエラーが発生します。メソッドの正しい終了時にデフォルトで呼び出されるため、サブミット呼び出しをまとめて削除します。

4

0 に答える 0