日期:2014-05-18  浏览次数:20441 次

求救!!!!关于下载的问题??????!!!!!
asp.net用什么办法做个下载.wav文件的程序啊???????
一般的下载都是用超级连接
可用超级连接的话,asp.net里是打开那个.wav文件!
求助!!!!!

------解决方案--------------------
try ->

protected void Page_Init(object sender, EventArgs e)
{
string downFilePath = @ "D:\openSUSE-10.2-GM-DVD-i386.iso "; // test with 3.8GB, ok // Server.MapPath( "~/files/somefile.wav ");
System.IO.FileInfo downFileInfo = new System.IO.FileInfo(downFilePath);

if (!downFileInfo.Exists) throw new Exception( "文件不存在。 ");
const int CHUNK_SIZE = 10000; // 指定块大小
byte[] buffer = new byte[CHUNK_SIZE];

Response.Clear();
// fails to down the big file with both the following methods
// error: System.ArgumentOutOfRangeException: 大小参数必须介于零和最大的 Int32 值之间。
// Response.WriteFile(downFilePath);
// OR
// Response.TransmitFile(downFilePath); // ASP.NET 2.0 supported
//
using (System.IO.FileStream iStream = System.IO.File.OpenRead(downFilePath)) {
long dataLengthToRead = iStream.Length;
Response.ContentType = "application/octet-stream ";
Response.AddHeader( "Content-Disposition ",
"attachment; filename= " + Server.UrlPathEncode(downFileInfo.Name)); // 对文件名进行编码
while (dataLengthToRead > 0 && Response.IsClientConnected) {
int lengthRead = iStream.Read(buffer, 0, CHUNK_SIZE);
Response.OutputStream.Write(buffer, 0, lengthRead);
Response.Flush();
dataLengthToRead = dataLengthToRead - lengthRead;
}
}
Response.Close();
}