1

私はasp.netにウェブサイトを持っています。私は自分のサーバーでそれをホストしました。私のサーバーには、C、D、E という名前の 3 つのディレクトリがあります。私の Asp.net アプリケーションは C ドライブにあります。モジュールで、My Server の D ディレクトリに保存されている画像をアップロードしました。asp.netコードからアクセスしたいのですが、「asp.netは物理パスですが、仮想パスが必要でした」というエラーメッセージが表示されます。このシナリオから自分のイメージにアクセスするにはどうすればよいですか? 私を助けてください....私のコードは次のとおりです..

ImageButton lnkbtn = sender as ImageButton;

       GridViewRow gvrow = lnkbtn.NamingContainer as GridViewRow;
       string fileName = grvImpact.DataKeys[gvrow.RowIndex].Values[3].ToString();
       string filePath = "D://Upload//CRDocument//" + fileName.ToString();

       if (fileName != null)
           {
           Response.ContentType = "image/jpg";
           Response.AddHeader("Content-Disposition", "attachment;filename=\"" + filePath + "\"");
           Response.TransmitFile(filePath);
           Response.End();
           }

うまくいきません...

4

2 に答える 2

2

物理ディレクトリにマップする相対パスまたは仮想パスを指定するには、Server.MapPathを使用します。

string FilePath;
FilePath = Server.MapPath("/MyWebSite");
于 2013-08-13T09:41:42.413 に答える
0

あなたが持っているとしましょう

URL

www.mydomain.com/D/images/MyMegaImage.jpg

ファイルシステム

c:\inetpub\mywebsite\wwwroot\D\images\MyMegaImage.jpg

コードでは、次のようなものになります

string imageFileName = "MyMegaImage.jpg";
string FullFilePath = HttpContext.Current.Server.MapPath("/D/images/" + imageFileName);

次に、変数 FullFilePath は "c:\inetpub\mywebsite\wwwroot\D\images\MyMegaImage.jpg" で計算する必要があります。

于 2013-08-13T09:50:39.327 に答える