我在GridView中实现了一个列,允许用户在单击文件名时下载文件(文件存储在我的项目的Uploads文件夹中)。
当文件中有一些数据时,代码工作得很好,例如,用户可以点击文件,它将被下载,但当用户点击一个空的文件(如空的.docx文件)时,会显示一个空白页面,而不是下载文件。
代码如下:
else if (e.CommandName == "Download")
{
Response.Clear();
if (File.Exists(Server.MapPath("~/Uploads/") + e.CommandArgument))
{
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "filename=" + e.CommandArgument.ToString());
Response.TransmitFile(Server.MapPath("~/Uploads/") + e.CommandArgument);
Response.End();
}
else
{
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Text = "File Not Found";
}
}我已经在Chrome,Mozilla和IExplorer上测试过了。
发布于 2016-02-23 06:06:34
您需要更改此行:
Response.AppendHeader("Content-Disposition", "filename=" + e.CommandArgument.ToString());对于这一条:
Response.AppendHeader("Content-Disposition", filename=\"" + e.CommandArgument.ToString()) \"";https://stackoverflow.com/questions/32005401
复制相似问题