|
.NET TIPS [ASP.NET]アプリケーションからASP.NETサイトにファイルをアップロードするには?デジタルアドバンテージ 遠藤 孝信2005/07/08 |
![]() |
|
|
|
クライアント・アプリケーションからASP.NETで構築されたWebサイトにファイルを転送(アップロード)したい場合、ASP.NETのファイル・アップロード機能(ファイルのアップロードを受け取る機能)と、WebClientクラス(System.Net名前空間)のUploadFileメソッドを使えば簡単に実装できる。
ファイルのアップロードを行うクライアント・アプリケーション
まず、クライアント側では次のようなプログラムを用意する。このプログラムはWebClientクラスのUploadFileメソッドを使って、指定されたURLに指定されたファイルをアップロードする(アップロードにはHTTPプロトコルのPOSTメソッドが使用される)。
|
|
| POSTメソッドによりファイルのアップロードを行うC#のプログラム(uploader.cs) | |
|
|
| POSTメソッドによりファイルのアップロードを行うVB.NETのプログラム(uploader.vb) | |
ここでは次項に示すASP.NETページのURLが「http://localhost/upload.aspx」であると仮定している。
UploadFileメソッドの戻り値は、指定されたURLのページが返すデータをbyte配列として返す。このプログラムではそれを文字列に変換し表示しているが、本稿の場合、この値は次に解説するようにアップロードされたファイルのサイズとなる。
アップロードされたファイルを受け取るASP.NETページ
サーバ側にはASP.NETのページとして次のような内容のaspxファイルを用意する(本稿の場合、c:\Inetpub\wwwrootディレクトリ配下にファイル名を「upload.aspx」として配置する)。
|
|
| アップロードされたファイルを受け取るC#のASP.NETページ(upload_cs.aspx) | |
|
|
| アップロードされたファイルを受け取るVB.NETのASP.NETページ(upload_vb.aspx) | |
このASP.NETページはクライアント・プログラムからのみアクセスされるので、通常のWebフォームは持っていない。ページがアクセスされるとPage_Loadメソッドが呼び出されて実行されるだけである。
Page_Loadメソッドでは、アップロードされたファイルを取得して、ファイルに保存している。この処理はブラウザからアップロードされたファイルを受け取る場合の処理とほぼ同じである。このため、詳細については「TIPS:[ASP.NET]ブラウザからファイルをアップロードできるようにするには?」を参考にしていただきたい。
そのTIPSでも解説しているように、ページのRequestプロパティのFilesプロパティは、アップロードされたファイルを示すHttpPostedFileクラス(System.Web名前空間)のオブジェクトのコレクションである。複数のファイルが同時に(1回のアクセスで)アップロードされた場合には、このコレクションには複数のHttpPostedFileオブジェクトが含まれることになるが、今回の場合は1つだけと分かっているので、「Request.Files[0]」によりアップロードされたファイルのHttpPostedFileオブジェクトを取得することができる。
Page_Loadメソッドの最後では、アップロードされたファイルの長さをHttpPostedFileオブジェクトのContentLengthプロパティにより取得して、Rsponse.Writeメソッドによりページの出力としている。上記のクライアント・プログラムで表示しているものはこの値である。この情報はファイルが正しくアップロードされたかどうかを判断するのに利用できる。![]()
| カテゴリ:Webフォーム 処理対象:ファイル・アップロード カテゴリ:クラス・ライブラリ 処理対象:ネットワーク 使用ライブラリ:WebClientクラス(System.Net名前空間) 使用ライブラリ:HttpPostedFileクラス(System.Web名前空間) 関連TIPS:[ASP.NET]ブラウザからファイルをアップロードできるようにするには? |
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


