ファイン アップローダーでは、ファイル アップロードの検証は各ファイル単位で機能します。選択したファイルのバッチ全体を検証したいと思います。10 個のファイルを選択したとします。バッチ全体のサイズは 10 MB で、アップロードの上限は 5 MB です。
選択したハエの合計サイズを取得する方法はありますか? 私はHtml5互換ブラウザとHtml4ブラウザ、つまりIEでそれをやりたいと思っています。
ファイン アップローダーでは、ファイル アップロードの検証は各ファイル単位で機能します。選択したファイルのバッチ全体を検証したいと思います。10 個のファイルを選択したとします。バッチ全体のサイズは 10 MB で、アップロードの上限は 5 MB です。
選択したハエの合計サイズを取得する方法はありますか? 私はHtml5互換ブラウザとHtml4ブラウザ、つまりIEでそれをやりたいと思っています。
まず、ファイル API のサポートが必要なため、IE9 以前ではこれを行う方法がありません (IE9 以前には存在しません)。ファイル API のサポートがなければ、クライアント側でファイル サイズを決定する方法はまったくありません。
そうは言っても、他のすべてのブラウザーで解決策を提供できます。これの鍵は、onValidateBatch
callbackの使用です。例えば:
var maxAllowedBatchSize = 5000000;
$('#uploadContainer').fineUploader({
request: {
endpoint: '/my/endpoint'
}
)}
.on('validateBatch', function(event, fileOrBlobDataArray) {
var totalSize = 0;
$.each(fileOrBlobDataArray, function(idx, fileOrBlobData) {
totalSize += fileOrBlobData.size;
});
// Tell Fine Uploader to ignore the entire batch of files
// if the batch exceeds the total size limit.
if (totalSize > maxAllowedBatchSize) {
return false;
}
});
このようなクライアント側のチェックはユーザーが操作できるため、サーバー側の検証も含める必要があります (ファイル API 以外のブラウザーでは機能しません)。