blueimp/jQueryファイルアップロードコントロール用のカスタムファイルアップロード実装があります。複数のファイルを選択し、そのうちの1つが最大長を超えている場合を除いて、これはうまく機能します。それでも、範囲外のファイルをアップロードしようとします(data.submit()
その特定のファイルを呼び出さなくても)。
大きな(送信されていない)ファイルに対してイベントが発生しないことを確認しprogress
ましたが、サーバーは最終的に404.13(要求フィルタリングモジュールは要求コンテンツの長さを超える要求を拒否するように構成されています)を報告し、他のファイルは報告しません実際に送信されたものがアップロードされます。
jQueryファイルアップロードコントロールを使用して有効なファイルをアップロードする方法を変更し、大きなファイルを無視するにはどうすればよいですか?
これが私のコードです...ノックアウトによって活用されてUI要素を表示するモデルを操作するため、以下のコードにはUI操作は表示されません。
$('#fileupload').fileupload({
dataType: 'json',
url: '/Handlers/UploadHandler.ashx',
progress: function (e, data) {
console.log(data.context);
var progress = parseInt(data.loaded / data.total * 100, 10);
var file = fileUploadDataModel.files()[data.context];
file.percentComplete(progress);
},
add: function (e, data) {
$.each(data.files, function (index, file) {
var fileModel = new FileModel(file.name, file.size);
fileUploadDataModel.files.push(fileModel);
data.context = fileUploadDataModel.files().length - 1;
if (file.size > opts.maxFileSize) {
fileModel.errorMessage('{0} ({1}) exceeds maximum size -- rejected'.format(file.name, friendlyBytes(file.size)));
fileModel.percentComplete(0);
}
else data.submit();
});
},
done: function (e, data) {
var file = fileUploadDataModel.files()[data.context];
file.percentComplete(100);
},
singleFileUploads: false,
});