K_Reverter的网页开发记录

要么不做,要么就当作艺术品来做!

导航

关于ASP.NET返回文件的问题

我今天发现我的程序中通过ASP.NET返回文件的程序,有很多ASF文件不能输出成功,系统提示Server Application Unavailable 开始我以为是ASF文件的问题,后来才发现是文件过大,原来ASP.NET的writeFile函数不能返回太大的文件,所以必须手工通过stream读取返回,具体程序如下:(其中的fileSpec包含文件路径)
 System.IO.Stream iStream = null;
 
byte[] buffer = new Byte[10000
];
 
int
 length;
 
long
 dataToRead;
 
string  filename  =
 System.IO.Path.GetFileName(fileSpec);
 
try

 
{
  iStream 
= new
 System.IO.FileStream(fileSpec, System.IO.FileMode.Open,System.IO.FileAccess.Read,System.IO.FileShare.Read);
  dataToRead 
=
 iStream.Length;
  Response.ContentType 
=
 GetContentType(fileSpec);
  Response.AddHeader(
"Content-Disposition""attachment; filename=" +
 filename);
    
while (dataToRead > 0
)
  
{
   
if
 (Response.IsClientConnected) 
   
{
    length 
= iStream.Read(buffer, 010000
);
    Response.OutputStream.Write(buffer, 
0
, length);
    Response.Flush();
    buffer
= new Byte[10000
];
    dataToRead 
= dataToRead -
 length;
   }

   
else
   
{
    dataToRead 
= -1
;
   }

  }

 }

 
catch (Exception ex) 
 
{
  Response.Write(
"Error : " +
 ex.Message);
 }

 
finally
 
{
  
if (iStream != null

  
{
   iStream.Close();
  }

 }

嗯,搞定,现在系统写得差不多了

posted on 2005-02-25 16:30  K_Reverter  阅读(390)  评论(0编辑  收藏  举报