- PR -

ファイルアップロードの際のファイルサイズ制限について

投稿者投稿内容
けぃ
常連さん
会議室デビュー日: 2003/01/23
投稿数: 26
投稿日時: 2005-10-14 15:14
ASP.netで開発をしています。
ファイルのアップロードについて、教えて下さい。

<INPUT TYPE="FILE">でアップロードファイルを選択させ、
ASPの送信ボタンのイベントでサーバへ送信しています。

選択したファイルサイズが大きい(正確には把握していませんが、10MBのファイルを選択)とサーバ側に処理がきません。また、IEのエラー画面(ページが表示できません)が表示されます。
そのため、2MB以上のファイルを選択した場合、アップロードできないように、alertのダイアログを表示し、送信ボタンをクリックできないようにする制御を行いたいと考えています

サーバ側に処理がこないため、JavaScriptで制御する方法もしくは、制御する方法があれば、教えて下さい。

【環境】
VS.net2002
Windows Server2003
IE5.0以上
.Net FrameWork1.1
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2005-10-14 15:43
ファイル サイズ アップロード

あたりをキーに過去ログを検索してみると吉です。
結果があまり多いようなら、
「すべてが含まれる投稿を検索」
会議室 Insider .NET で絞れると思います。

追記:
[ディレクトリ分類による検索] を使うのもありですね。
Webアプリケーションの中にアップロードっていうカテゴリがあります。

[ メッセージ編集済み 編集者: ぼのぼの 編集日時 2005-10-14 15:45 ]
fizzy
会議室デビュー日: 2003/09/09
投稿数: 17
お住まい・勤務地: TOKYO
投稿日時: 2005-10-14 15:43
(TYPE="FILE"のID).PostedFile.ContentLength でファイルサイズがバイトで取れます。


[ メッセージ編集済み 編集者: fizzy 編集日時 2005-10-14 15:43 ]
けぃ
常連さん
会議室デビュー日: 2003/01/23
投稿数: 26
投稿日時: 2005-10-14 16:21
早速の返信ありがとうございます。

頂いた情報から、実現方法を見出せそうです。

ありがとうございました
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2005-10-14 16:27
引用:

fizzyさんの書き込み (2005-10-14 15:43) より:
(TYPE="FILE"のID).PostedFile.ContentLength でファイルサイズがバイトで取れます。


こ、これはちとタイミングが違うのでは…
fizzy
会議室デビュー日: 2003/09/09
投稿数: 17
お住まい・勤務地: TOKYO
投稿日時: 2005-10-14 17:04
ほ、本当だ・・・。
失礼しました。
私のは参考にしないで下さいませ・・・。
けぃ
常連さん
会議室デビュー日: 2003/01/23
投稿数: 26
投稿日時: 2005-10-14 18:03
過去のログを見たところ、

JavaScriptで
function fnOnClick() {
Fs = new ActiveXObject("Scripting.FileSystemObject");
if ( Fs.FileExists(document.all.uploaded_file.value) ) {
fl = Fs.getFile(document.all.uploaded_file.value);
alert(fl.size);

} else {
alert("ファイル名が無効です");
}
}

と記述すると、ファイルサイズが取得できました。
私の端末で実行すると
「このページのActiveXコントロールは、安全でない可能性があり、ページのほかの部分に影響する可能性があります。ほかの部分に影響しても問題ありませんか?」とダイアログが表示されます。

JavaScriptを使用する場合、この方法しかないのでしょうか。
ActiveXを使用せずに、ファイルサイズを取得する方法があれば、教えて下さい。

宜しくお願いします

ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2005-10-14 18:16
クライアントスクリプトは、標準的なセキュリティでは
クライアントのファイルシステムにアクセスするようなことはできません。
悪意のある人がいろいろできるようになってしまうので。
なので、仮に他に方法があったとしても、似たようなダイアログが出るでしょう。
出なかったら、セキュリティホールです。

スキルアップ/キャリアアップ(JOB@IT)