それをアップロードする前に、ファイルのサイズを取得する方法?
-
23-08-2019 - |
質問
私は私のウェブアプリでファイル入力タグを持っています。私は、ファイルをサーバーに送信する前に、大きすぎないことをチェックしたいと思います。もちろん、私はまだ検証サーバ側を持っています。 JavaScriptでこれを行う方法はありますか?これは、IE7 +とFF3 +で働かなければなりません。ありがとうございます。
EDIT:somefileinputobject.files [0] FFで動作します.filesizeはなく、IE
。解決
これは難しい問題です。あなたはAJAXでそれを行うと、POSTリクエストでサーバにブラウザから送られたファイルサイズのヘッダーを使用する必要があります。
YahooのUIライブラリは、これを支援するためのツールを持っています。 YUIアップローダする
他のヒント
Javascriptがこれを行うことはできません。これは、深刻なセキュリティ上の問題を持っているでしょう。おそらく、フラッシュがができます。
タグ確実にすべてのブラウザのためのJavascriptで行うことができませんが、
web.config
からポストされたデータの合計サイズを制限することができます 短い答え:いいえ、あなたはサーバー上でこれを処理する必要があります。
。長い答え:信頼できるものではありません。 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
}
しかし、これは簡単にブラウザのセキュリティ設定によってcomprimisedたりすることができます 他のブラウザやプラットフォームの使用ます。
あなたは本当に多くのオプションを持っていません。あなたは、クライアント側でそれを確認することはできませんし、あなたがそれをサーバ側をチェックする機会を得る前に、それはあなたのように構成maxRequestLengthをヒットします。あなたはmaxRequestLengthがしかし超えたときに発生する例外をキャッチすることができます。