- PR -

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

投稿者投稿内容
えんぞ@?
ぬし
会議室デビュー日: 2004/07/06
投稿数: 271
お住まい・勤務地: はまっこ
投稿日時: 2005-10-14 19:08
引用:

あすとらさんの書き込み (2005-10-14 15:14) より:

IEのエラー画面(ページが表示できません)が表示されます。
そのため、2MB以上のファイルを選択した場合、アップロードできないように、


素朴に、「アップロード可能なファイルサイズは2MBまで!」という仕様でOKなんでしょうか?
# ユーザにとっては不便なような気がしたので...(^^;
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2005-10-14 21:53
引用:
選択したファイルサイズが大きい(正確には把握していませんが、10MBのファイルを選択)とサーバ側に処理がきません。

ホントはこれを許したい、ということであれば
ぼのぼのさんのおっしゃる通り検索すればたどりつけるんですが、
maxRequestLengthをいじればいい、のですかね。
葉瀬崎浩樹
大ベテラン
会議室デビュー日: 2005/06/28
投稿数: 115
お住まい・勤務地: 兵庫県
投稿日時: 2005-10-14 22:50
一般的な手段かどうかはわかりませんが。。

httpRuntime要素のmaxRequestLengthの設定値を超えた場合、
Webページまで処理が届かないのは、ご存知の通りです。
10MBのファイルをアップロードすれば、数十秒経過後に
ブラウザが真っ白になるか、HTTPエラーになったはずです。

で、私の場合は下記のように対処しました。
1.運用上アップロードされそうなサイズに合わせて、
 余裕を持たせた値を、maxRequestLengthに設定。
 (例えば、10MBを設定)
2.サーバ側で、PostedFile.ContentLengthを見て、
 仕様の制限範囲内のサイズ内かどうかをチェック。
 (例えば、2MB以内か判定)
2-1.サイズ内であれば、SaveAsなど適当な処理を行う。
2-2.サイズを超えていれば、警告を埋め込んだページを返す。
極力エラーページが表示されるのを避けることと、
イントラ内で限定のWebアプリケーションだったことと、
アップロード攻撃を受ける心配が無かったので、
このような対応を行いました。

愚直な方法ですが、参考になれば。
けぃ
常連さん
会議室デビュー日: 2003/01/23
投稿数: 26
投稿日時: 2005-10-14 23:44
いろいろなご意見ありがとうございます

たしかにmaxRequestLength の設定を変更して、サーバ側の処理でファイルサイズの判定をすれば、可能のようです。

2MBのファイルまでという仕様は、確かに不便ではあるのですが、ルールとして決められているので変更はできません。

現在開発しているシステムは、イントラネット内のみなので、葉瀬崎浩樹さんの方法は適用できそうです。
ただ、HTTPエラーとなるのは、避けたいという気持ちがありますが。
miho
常連さん
会議室デビュー日: 2007/03/10
投稿数: 24
投稿日時: 2007-04-13 11:08
こんにちは。
すみません。便乗で質問させて下さい。
フォームアップロードボタンとキャンセルボタンがあります。
前述のjavascriptを使って、ファイルのサイズをクライアント側で判断してアップロードを防ぐ方法はわかったのですが、
これによって、アップロードが拒否され、キャンセルボタンを押した場合、
ファイルの参照先が指定された状態のままになっていると、
ポストされてしまって、サーバへのアクセスが拒否されてしまいます。
ファイルサイズを判断して、設定サイズ以上だった場合、メッセージを出すだけでなく、
参照先のパスそのものをテキストボックスから消すことはできないでしょうか。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-04-13 22:15
引用:

mihoさんの書き込み (2007-04-13 11:08) より:
こんにちは。
すみません。便乗で質問させて下さい。
フォームアップロードボタンとキャンセルボタンがあります。
前述のjavascriptを使って、ファイルのサイズをクライアント側で判断してアップロードを防ぐ方法はわかったのですが、
これによって、アップロードが拒否され、キャンセルボタンを押した場合、
ファイルの参照先が指定された状態のままになっていると、
ポストされてしまって、サーバへのアクセスが拒否されてしまいます。
ファイルサイズを判断して、設定サイズ以上だった場合、メッセージを出すだけでなく、
参照先のパスそのものをテキストボックスから消すことはできないでしょうか。


 "消す" のか、"他のを設定する" のかわからないので、無理です。

 JavaScript なら、同じページにリダイレクトという方法もありますが、そうすると他の設定値まで消えてしまう。。。

_________________
miho
常連さん
会議室デビュー日: 2007/03/10
投稿数: 24
投稿日時: 2007-04-15 16:13
こんにちは。
説明が下手で、どうもすみません。
できれば、テキストボックスに空文字か何かを設定して、ポストされるようにしたいです。
miho
常連さん
会議室デビュー日: 2007/03/10
投稿数: 24
投稿日時: 2007-04-16 14:51
>JavaScript なら、同じページにリダイレクトという方法もありますが、そうすると他の>設定値まで消えてしまう
これがヒントになって、何とかできました。
from1(表示するページ)の下にform2(空のフォーム)を作って、キャンセルボタンが押されたら、form2をjavascriptで同じページにsubmitするようにしました。
ありがとうございました。

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