ASP.NET ファイルアップロード


今日は久しぶりに ASP.NET の話題です。

昔からあるのでご存知の方も多いと思いますが、 ASP.NET には FileUpload コントロールと言うのがあります。これはファイルのアップロードを簡単にするもので、 Web フォームからファイルをアップロードした時に、サーバー側でそのアップロードされたファイルを PostedFile というオブジェクトとして受け取れる、というものです。

これ、実際に便利なことは便利です。

クラシック ASP の時代には、ファイルをポストするだけでサードパーティのコンポーネントを使ったり (BASP21 とか)、あるいは MS が提供していたポスティング・アクセプター (Posting Acceptor) なんかを使ったり、、、まぁ、いろいろあったわけです。

って、何年かぶりにポスティングアクセプターなんて言葉がでてきましたが、これ知ってますか? NT4 の時代にサイト・サーバー・エクスプレス (Site Server Express) とかありましたけど、確かそれについて来たんですよね。当時、僕はMSの技術サポートにいたんですけど、Posting Acceptor は WinInet なんぞを使ってるのでよくハングしていたのでした・・・。

なんか、懐かしいですね。。。って、今日はそんなことを話したいのではなかったでした(苦笑)

えーと、そうそう、その PostedFile に FileName というプロパティがあるのですが、これがどんな風にセットされるか、ちょっと実験してみました。

その結果、セキュリティ上ちょっと気をつけた方が良いポイントを見つけましたので、記事にまとめました。

アップロードされるファイルのファイル名の取扱いで気をつけること [ASP.NET 入門]