- - PR -
HttpRequestクラスのSaveAsメソッドについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-11-20 14:26
ASP.NET VS2005で開発しています。
商品管理の登録・照会画面を作っているのですが、登録画面で商品の紹介画像をサーバーにアップロードしようと思っています。 ローカルPCに保存されている、登録したい画像のパス/ファイル名を画面で指定してもらい、その画像ファイルを、開発中のWEBシステム配下の既存フォルダーにアップロード(保存)しようとしています。 この保存を、以下のようにSaveAsメソッドで行ったのですが、エラーが出てしまいました。 Dim posted As HttpPostedFile = Request.Files("userfile") posted.SaveAs("~/image/article/no0010.jpg" & System.IO.Path.GetFileName(posted.FileName)) ■エラーメッセージ SaveAs メソッドはルート指定のパスが必要であるように設定されています。 パス '~/image/article/no0010.jpg'にはルートが指定されていません。 物理パス(例:'c:websystem/image/article/no0010.jpg')を指定すると保存できるのですが、出来れば仮想パスで記述したいと思っています。 調べてみたら、MapPathメソッドと言うのがあり、「引数に指定された仮想パスに対応する物理パスを戻す」との説明があり色々試してみたのですが、どうしても出来ませんでした。 どなたか、やられた経験のある方がいらっしゃいましたら、ご教授頂けると助かります。 どうか、よろしくお願い致します。 | ||||
|
投稿日時: 2008-11-20 14:49
System.Web.UI.Pageクラス の MapPath について調べてみてください。
http://msdn.microsoft.com/ja-jp/library/system.web.ui.page.mappath.aspx | ||||
|
投稿日時: 2008-11-20 15:36
セラフさん
こんにちは。 早速試してみまして、物理パス名を取得することができ、大変助かりました。 ちなみに対応したコードを帰しアしておきます。 Dim virtualPath As String Dim returnValue As String returnValue = Page.MapPath(virtualPath) 早いアドバイス、本当に大変ありがとうございました。 PS:このように迅速で豊富な情報をお持ちなのに大変驚いています。。。 | ||||
|
投稿日時: 2008-11-20 15:44
引数、戻り値の意味がわからないという事ですか? MapPath(仮想パス)とすれば物理パスが取得できるはずです。 Dim Return As String Return = MapPath(仮想パス) とすればstrReturnに値が入ります。 そのままつかうのであれば宣言する必要もありません。 解決済みでしたね。 MapPathに関しては Jettaさん本人が提示されているじゃないですかw [ メッセージ編集済み 編集者: 108 編集日時 2008-11-20 15:48 ] | ||||
|
投稿日時: 2008-11-20 16:53
108さん
>引数、戻り値の意味がわからないという事ですか? はい、先程まではそうでした(笑) >とすればstrReturnに値が入ります。 >そのままつかうのであれば宣言する必要もありません。 そうですね。 無駄な変数が1つ減りました。 皆さんのご助言で最善な形で解決できました。 セラフさん、108さん。 ありがとうございました。 |
1