+ -
当前位置:首页 → 问答吧 → 弹不出文件下载对话框的问题

弹不出文件下载对话框的问题

时间:2011-12-16

来源:互联网

我用的是vs2005,要实现下载filelist中选定的文件;
现在的问题是,我在vs2005里,调试的时候,可以正常弹出下载对话框;但是一旦“build->publish web”发布到IIS后,点击下载之后,就是一个空白的页面,弹不出下载对话框。哪位又遇到过这样的问题没?
代码如下:

C# code
            if (DownloadFile.Exists)
            {
                Response.Clear();
                Response.ClearHeaders();
                Response.Buffer = false;
                Response.ContentType = "application/octet-stream";
                Response.AppendHeader("Content-Disposition", "attachment;filename="+HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.ASCII));
                Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
                Response.WriteFile(DownloadFile.FullName);
                Response.Flush();
                Response.End();
            }
            else
            {
                Response.Write(string.Format("<script>alert('{0}')</script>", "文件不存在"));
            }
        }
        catch
        {
            Response.Write(string.Format("<script>alert('{0}')</script>", "下载出错啦"));
        }

作者: jonglin   发布时间: 2011-12-16

public void download()
  {
  string path = Server.MapPath(@"需要下载文件的地址(服务器端的)");
  //下载文件的名称
  string filename = "c.doc";
  System.IO.FileInfo toDownload = new System.IO.FileInfo(path);

  if (toDownload.Exists == true)
  {
  const long ChunkSize = 10000;
  byte[] buffer = new byte[ChunkSize];

  Response.Clear();
  System.IO.FileStream iStream = System.IO.File.OpenRead(path);
  long dataLengthToRead = iStream.Length;
  Response.ContentType = "application/octet-stream";
  Response.AddHeader("Content-Disposition", "attachment; filename=new_" + HttpUtility.UrlEncode(toDownload.Name));
  while (dataLengthToRead > 0 && Response.IsClientConnected)
  {
  int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize));
  Response.OutputStream.Write(buffer, 0, lengthRead);
  Response.Flush();
  dataLengthToRead = dataLengthToRead - lengthRead;
  Response.WriteFile(filename);
  }
  Response.Close();
  }
  }

作者: hefeng_aspnet   发布时间: 2011-12-16

DownloadFile.FullName
断点一下,看看是不是服务器和客户端换个环境就不一样了?

作者: wangsunjun   发布时间: 2011-12-16

引用 2 楼 wangsunjun 的回复:

DownloadFile.FullName
断点一下,看看是不是服务器和客户端换个环境就不一样了?


也没有换环境啊
在同一台机器上呢

作者: jonglin   发布时间: 2011-12-16