次のコードは、以下で説明するように、特注の一連の要件を課そうとしています。私は使用しています
アップロードをファイル セット構造に制限し、このファイル セットを単一のマルチパート 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 の「再帰が多すぎます」というエラーが発生します。メソッドの正しい終了時にデフォルトで呼び出されるため、サブミット呼び出しをまとめて削除します。