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
------解决方案--------------------老大来了,学习..