下面是代码,下载下来的文件固定占用大小8K,内容大小7.14K,小于这个仍然是那么多不过小于这个大小的文件可用。能看出是什么问题吗?private void DownLoad()
        {
            /*读取数据库文件流,保存到本地*/
            int id;
            byte[] file;//二进制数据
            string fileName;//目标文件            if (int.TryParse(this.Request.QueryString["Id"], out id))
            {
                MyDocument document = this.documentService.GetDocument(id);
                if (document != null)
                {
                    fileName = document.FileName;
                    file = document.FileContent;                    //MemoryStream stream = new MemoryStream(file);                    FileStream fs_stream = new FileStream(fileName, FileMode.OpenOrCreate);                    Response.ContentType = "application/octet-stream";                    Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName));                    BinaryWriter writefile = new BinaryWriter(fs_stream);                    writefile.Write(file);                    writefile.Close();
                }
            }
        }

解决方案 »

  1.   

    private   void   FileDownload() 
            { 
                    String   FullFileName   =   Server.MapPath( "文件路径 "); 
                    FileInfo   DownloadFile   =   new   FileInfo(FullFileName); 
                    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.UTF8)); 
                    Response.AppendHeader( "Content-Length ",   DownloadFile.Length.ToString()); 
                    Response.WriteFile(DownloadFile.FullName); 
                    Response.Flush(); 
                    Response.End(); 
            } 
      

  2.   

    1L抱歉忘了说了我服务器存取用的IBatis,读取名为FileContent列中对应Id保存的byte[]。
    所以String FullFileName = Server.MapPath(“文件路径”),这个文件路径我该怎么指定啊?求解
      

  3.   

    已解决,原来是使用了
    FileStream fs_stream = new FileStream(fileName, FileMode.OpenOrCreate);BinaryWriter writefile = new BinaryWriter(fs_stream);writefile.Write(file);这样这个流的大小始终为页面大小。去掉后正常。