整个早上都有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)){
}
它运行页面没有错误,但页面的功能没有用,这告诉我文件路径不存在。
答案 0 :(得分:0)
可能会拒绝访问该路径,因为它可能不存在。在将文件简化为Response.WriteFile
之前,您应至少检查文件是否存在。这也将使您有机会确保它尝试获取的路径能够正常工作。
还要记住,它不会意识到您在Web应用程序范围内正在处理的“相对”路径。您应该确保使用Server.MapPath
或某些配置设置来确保您的filepath
变量看起来像操作系统上的绝对路径,例如E:\Inetpub\wwwroot\...
。