- PR -

ファイルのアップロード時のサイズチェックについて

投稿者投稿内容
KOME
常連さん
会議室デビュー日: 2005/02/09
投稿数: 23
投稿日時: 2005-02-09 17:24
ASP.NETでC#を使用してWebアプリを開発しています。
ファイルをWebサーバへアップロードさせる処理なんですが、アップロードファイルサイズの制限をかける仕様があります。
実際にファイル本体をアップロードする前にサイズを取得してチェックし、制限サイズ以下であれば、アップロードさせるような処理は可能でしょうか?
momotchi
常連さん
会議室デビュー日: 2004/01/16
投稿数: 28
お住まい・勤務地: 宮城県
投稿日時: 2005-02-09 17:33
こんにちは。
↓でしょうか。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=17912&forum=12
中博俊
ベテラン
会議室デビュー日: 2004/10/17
投稿数: 91
お住まい・勤務地: 大阪市
投稿日時: 2005-02-09 17:38
http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/ja-jp/Default.asp?url=/resources/documentation/WindowsServ/2003/standard/proddocs/ja-jp/aaconhttpruntimeelement.asp
maxRequestLength

またはISAPIフィルタとかです。
_________________
中博俊 MSMVP Visual Studio C# Since 2004/04-2005/03, MCP
http://naka.wankuma.com/
http://blogs.wankuma.com/naka/
naka@wankuma.com
KOME
常連さん
会議室デビュー日: 2005/02/09
投稿数: 23
投稿日時: 2005-02-09 17:52
早速のご回答ありがとうございます。
続けての質問で恐縮なんですが、たとえばこれが1つのファイルではなく、指定された複数のファイルの合計サイズが制限値を超える場合、すべてのアップロードを認めない、というのは可能なのでしょうか?
中博俊
ベテラン
会議室デビュー日: 2004/10/17
投稿数: 91
お住まい・勤務地: 大阪市
投稿日時: 2005-02-09 17:56
私の言っている制限値は、1回のリクエストの容量です。
なので、1ファイルとかそういうものではなく、そのほかのリクエスト(textやhidden)なども含みます。


http://naka.wankuma.com/site/column/aspnet/00003.htm
_________________
中博俊 MSMVP Visual Studio C# Since 2004/04-2005/03, MCP
http://naka.wankuma.com/
http://blogs.wankuma.com/naka/
naka@wankuma.com
momotchi
常連さん
会議室デビュー日: 2004/01/16
投稿数: 28
お住まい・勤務地: 宮城県
投稿日時: 2005-02-09 18:02
引用:

KOMEさんの書き込み (2005-02-09 17:52) より:
続けての質問で恐縮なんですが、たとえばこれが1つのファイルではなく、指定された複数のファイルの合計サイズが制限値を超える場合、すべてのアップロードを認めない、というのは可能なのでしょうか?



ファイルサイズを足すとよいのでは?
KOME
常連さん
会議室デビュー日: 2005/02/09
投稿数: 23
投稿日時: 2005-02-09 18:06
1回のリクエストの容量なんですね。
textやhiddenなどが含まれて多少の誤差は生じますが許容範囲内と思われます。
ありがとうございました。
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2005-02-09 18:40
ども、ぼのぼのです。

まず別案をひとつ。厳密には「アップロードする前」ではないかもしれませんが、サーバ側のコードでHtmlInputFileオブジェクトのPostedFile.ContentLength属性を見て、制限値を超えていたらSaveAsせずにエラーメッセージを表示、というようにすれば、動作上はKOMEさんのやりたいことが実現できると思います。

次に、別の問題なんですが、中さんの仰った方法でmaxRequestLengthを設定すると、設定値を越えたサイズのファイルをアップロードしようとした時に、IEが「ページを表示できません」の画面になってしまいませんか?中さんの示されたリンク先にもあるここにもちょっとだけ書いてありますよね。これを回避して、カスタムエラーページに飛ばすことって可能なんでしょうか?便乗質問になってしまいますが、もしご存知でしたら教えてくださいm(_ _)m
momotchiさんの示されたリンク先にあるFileSystemObjectを使うのは一つの手なんですけど、これって標準セキュリティ設定のブラウザじゃ動かないんですよねぇ…

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