日期:2014-05-20  浏览次数:20477 次

asp.net如何下载大文件,文件为Dbf文件。
asp.net如何下载大文件(大概有500兆到1G之间),文件为Dbf格式文件,我用了了微软网站的方法下载,是可以下载,但是下载下来后文件打开是坏的。请各位大哥帮小弟看看。有没有什么好的解决方法。

public   void   FileDownload(string   filepath)
{
System.IO.Stream   iStream   =   null;
byte[]   buffer   =   new   Byte[10000];
int   length;
long   dataToRead;
string     filename     =   System.IO.Path.GetFileName(filepath);
try
{
iStream   =   new   System.IO.FileStream(filepath,   System.IO.FileMode.Open,System.IO.FileAccess.Read,System.IO.FileShare.Read);
dataToRead   =   iStream.Length;
Response.ContentType   =   "application/octet-stream ";
Response.AddHeader( "Content-Disposition ",   "attachment;   filename= "   +   filename);
while   (dataToRead   >   0)
{
if   (Response.IsClientConnected)  
{
length   =   iStream.Read(buffer,   0,   10000);
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();
}
}


}

------解决方案--------------------
帮你顶
------解决方案--------------------
学学,在接点分
------解决方案--------------------
代码没有问题,百多m的文件可以下载,也可以正常时用
不过可能不支持中文名,可以加上
Response.ContentEncoding = System.Text.Encoding.GetEncoding( "GB2312 ");即可

你换一个其他类型的或小一点的文件也会出现文件损坏的问题吗?
------解决方案--------------------
没做过~
------解决方案--------------------
有没有试过简单一点的, <a href= '.....dbf '> download </a>
------解决方案--------------------
直接一点,点击一下!
------解决方案--------------------
你试用一下, <a href= '.....dbf '> download </a>
把绝对路径写在 <a href= ' "+//绝对路径+ " '> 下载 </a> 适用一下我就是这样做的!不过没有下载过那么多最大几百M
------解决方案--------------------
分段下载不会大量增加服务器的负载(内存),应该和限制无关
我这里只有本机的环境,250m的文件下载没有任何问题
------解决方案--------------------
帮顶!!!
------解决方案--------------------
下载大文件请使用这个方法

http://support.microsoft.com/kb/812406/zh-cn
------解决方案--------------------
老大来了,学习..