Webアプリにファイル入力タグがあります。サーバーに送信する前に、ファイルが大きすぎないことを確認したいと思います。もちろん、私はまだ検証サーバー側を持っています。JavaScriptでこれを行う方法はありますか?IE7+およびFF3+で動作する必要があります。ありがとうございました。
編集:somefileinputobject.files [0] .filesizeはFFで機能しますが、IEでは機能しません。
Webアプリにファイル入力タグがあります。サーバーに送信する前に、ファイルが大きすぎないことを確認したいと思います。もちろん、私はまだ検証サーバー側を持っています。JavaScriptでこれを行う方法はありますか?IE7+およびFF3+で動作する必要があります。ありがとうございました。
編集:somefileinputobject.files [0] .filesizeはFFで機能しますが、IEでは機能しません。
それは難しい問題です。これはAJAXで行う必要があり、POSTリクエストでブラウザからサーバーに送信されるファイルサイズヘッダーを使用する必要があります。
YahooのUIライブラリには、これを支援するツールがあります。 YUIアップローダー
Javascriptはこれを行うことができません。深刻なセキュリティ問題が発生します。おそらくフラッシュはできます。
簡単な答え:いいえ、これはサーバーで処理する必要があります。
長い答え:信頼できない。IEを使用すると、次のようなことができます。
function checkSize(filespec) {
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = f.size;
// Do something with var s
}
ただし、これは、ブラウザのセキュリティ設定または別のブラウザやプラットフォームの使用によって簡単に損なわれる可能性があります。
すべてのブラウザでJavascriptを使用して確実に実行できるわけではありませんが、投稿されたデータの合計サイズをweb.config
従来のファイル入力コントロールを使用している場合、実際には多くのオプションはありません。クライアント側でチェックすることはできず、サーバー側でチェックする機会を得る前に、構成されたmaxRequestLengthに到達します。ただし、maxRequestLengthを超えたときに発生する例外をキャッチできます。