0

VS 2012 を使用して Asp.Net MVC 4 アプリケーションを開発しています。ローカルで実行されているアプリケーションは、IIS Express を Web サーバーとして使用しています。ソリューションの一部であるファイルにアクセスしようとすると、問題に直面しています。私は次のアクションメソッドを持っています:

public FileContentResult GetImage()
        {
            byte[] imageByte = System.IO.File.ReadAllBytes(@"/MyPics/My.jpg");
            string contentType = "image/jpeg";

            return File(imageByte, contentType);
        }

最初の行で、次のエラーが発生します。

Could not find a part of the path 'C:\Program Files (x86)\IIS Express\~\MyPics\My.jpg'

上記のパスが正しくないことはわかっていますが、この問題を解決するためにどのパスを指定すればよいかわかりません。

よろしくパワン・ミシュラ

4

1 に答える 1

10

Server.MapPath() を使用して、次のように実際のディレクトリを取得できます。

byte[] imageByte = System.IO.File.ReadAllBytes(Server.MapPath("~/MyPics/My.jpg"));

代わりに HostingEnvironment.MapPath() を使用することを推奨する人もいます: Server.MapPath と HostingEnvironment.MapPath の違いは何ですか?

于 2013-04-07T15:26:01.790 に答える