Response.TransmitFile()传输空文件失败

本文关键字:文件 失败 传输 TransmitFile Response | 更新日期: 2023-09-27 18:07:58

我在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和ie上进行了测试。

Response.TransmitFile()传输空文件失败

你需要改变这一行:

Response.AppendHeader("Content-Disposition", "filename=" + e.CommandArgument.ToString());

:

Response.AppendHeader("Content-Disposition", filename='"" + e.CommandArgument.ToString()) '"";