首页 > 解决方案 > 在 asp.net 页面加载中下载弹出窗口不正确

问题描述

我正在尝试根据以下代码打开文件。

我没有使用 server.mappath。因为,访问路径是直接文件服务器路径,它与服务帐户映射。

protected void Page_Load(object sender, EventArgs e)
{
string filePath1 = @"\\RMN\T001\PROC\MATERIALDB\";
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment; filename=" + "MAT01210821.png");
Response.WriteFile(filePath1);
Response.ContentType = "";
Response.End();
}

我得到以下错误。

文件名、目录名或卷标语法不正确。

我的要求是,当我执行上述代码时,它应该向最终用户询问弹出窗口“您要打开还是保存文件...”?下面的截图供参考。

在此处输入图像描述

标签: asp.net

解决方案


即使缺少实际错误,该行Response.WriteFile(filePath1);仍在尝试使用文件夹,就好像它是一个文件一样。

为避免这种混淆,文件夹路径应存储在一个名为folder并用于构造实际路径的变量中。

var folder = @"\\RMN\T001\PROC\MATERIALDB\";
var fileName="MAT01210821.png";
var filePath=Path.Combine(folder, fileName) ;
...
Response.AddHeader("content-disposition", "attachment; filename=" + fileName);
Response.WriteFile(filePath);

推荐阅读