それをアップロードする前に、ファイルのサイズを取得する方法?

StackOverflow https://stackoverflow.com/questions/547292

質問

私は私のウェブアプリでファイル入力タグを持っています。私は、ファイルをサーバーに送信する前に、大きすぎないことをチェックしたいと思います。もちろん、私はまだ検証サーバ側を持っています。 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がしかし超えたときに発生する例外をキャッチすることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top