对路径的访问被拒绝..为什么

本文关键字:拒绝 为什么 访问 路径 | 更新日期: 2023-09-27 18:36:16

整个早上都有 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)){
}

它运行页面没有错误,但页面的功能不起作用,这告诉我文件路径不存在。

对路径的访问被拒绝..为什么

对路径的访问可能被拒绝,因为它可能不存在。在简单地将文件爆破成Response.WriteFile之前,您应该至少执行一次检查以查看该文件是否存在。这也将使您有机会确保它尝试获取的路径有效。

还要记住,它不会知道你在 Web 应用程序范围内处理的"相对"路径。应确保使用Server.MapPath或某些配置设置,以确保filepath变量看起来像操作系统上的绝对路径,例如 E:'Inetpub'wwwroot'...