首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

附件上载的时候txt格式文件上载有关问题

2012-12-20 
附件下载的时候txt格式文件下载问题txt格式的附件下载,变成了下载当前网页。这是怎么回事?[最优解释]protec

附件下载的时候txt格式文件下载问题
txt格式的附件下载,变成了下载当前网页。这是怎么回事?
[最优解释]


     protected void Button3_Click(object sender, EventArgs e)
        {
            string fileName = "asd.txt";//客户端保存的文件名
            string filePath = "E://aaa.txt"; //Server.MapPath("DownLoad/aaa.txt");//路径
            FileInfo fileInfo = new FileInfo(filePath);
            Response.Clear();
            Response.ClearContent();
            Response.ClearHeaders();
            Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
            Response.AddHeader("Content-Length", fileInfo.Length.ToString());
            Response.AddHeader("Content-Transfer-Encoding", "binary");
            Response.ContentType = "application/octet-stream";
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
            Response.WriteFile(fileInfo.FullName);
            Response.Flush();
            Response.End();
        }



[其他解释]
没碰过。直接右键另存呢?或者换个浏览器直接打开路径看看。
[其他解释]
Chrome下载没问题,IE下载就有问题了。我把代码贴出来。
  FileStream fs = null;
                   try
                   {
                       String fileName = ViewState["Attchment"].ToString();
                       String filePath = Server.MapPath(@"~/UpLoad/Attchment/" + fileName);
                       //以字符流的形式下载
                       fs = new FileStream(filePath, FileMode.Open);
                       byte[] bytes = new byte[(int)fs.Length];
                       fs.Read(bytes, 0, bytes.Length);
                       Response.Clear();


                       Response.ClearHeaders();
                       Response.Buffer = false;  
                       Response.ContentType = "application/octet-stream";

                       Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(Path.GetFileName(fileName), System.Text.Encoding.UTF8));
                       Response.BinaryWrite(bytes);
                       Response.Flush();
                       Response.End();

                   }
                   catch (Exception ex)
                   {
                       throw ex;
                   }
                   finally
                   {
                       fs.Close();
                   }


[其他解释]
看这里

热点排行