0

午前中ずっと ASP.NET の問題が発生していましたが、これで新しい問題が発生しました

string filepath = "";
filepath = Server.MapPath(Request.QueryString["fileDownloadable"]);
if (filepath != null)
{
    Response.Clear();
    Response.AddHeader("content-disposition", "attachment; filename=MyPDF.pdf");
    Response.WriteFile(filepath);
    Response.ContentType = "";
    Response.End();
}

18行目にエラーが表示さResponse.WriteFile(filepath);れ、パスへのアクセスが拒否されたと表示されます....なぜこれを行うのですか?

はこのRequest.QueryString["fileDownloadable"]コードから来ています...

<li><a href="./DownloadableProducts.aspx?fileDownloadable=/downloadableProducts/MyPDF.pdf" runat="server">IPC Client Personal Financial Website Feb 12</a></li>

フォルダーのアクセス許可を確認したところ、ルートにある他のすべてのフォルダーと同じ種類のアクセス許可があります。

何か提案はありますか?

ファイルが存在するかどうかを確認するために、コードビハインドの間にこのコードを実行しました..

if(File.Exists(filepath)){
}

エラーなしでページを実行しましたが、ページが機能していませんでした。これは、ファイルパスが存在しないことを示しています。

4

1 に答える 1

0

おそらく存在しないため、パスへのアクセスが拒否されている可能性があります。単純にファイルを爆破する前にResponse.WriteFile、少なくともファイルが存在するかどうかを確認する必要があります。これにより、取得しようとしているパスが機能することを確認する機会も得られます。

また、Web アプリケーションのスコープ内で作業している「相対」パスを認識しないことに注意してください。いずれかServer.MapPathまたはいくつかの構成設定を使用して、filepath変数がE:\Inetpub\wwwroot\....

于 2012-06-05T17:02:18.790 に答える