Asp.net(c#)实现多线程断点续传

王朝c#·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

System.IO.Stream iStream = null;

// Buffer to read 10K bytes in chunk:

byte[] buffer = new Byte[10240];

// Length of the file:

int length;

// Total bytes to read:

long dataToRead;

// Identify the file to download including its path.

string filepath = @"E:\software\SQL Server 2000 Personal Edition.ISO";

// Identify the file name.

string filename = System.IO.Path.GetFileName(filepath);

try

{

// Open the file.

iStream = new System.IO.FileStream(filepath, System.IO.FileMode.Open,

System.IO.FileAccess.Read,System.IO.FileShare.Read);

Response.Clear();

// Total bytes to read:

dataToRead = iStream.Length;

long p = 0;

if(Request.Headers["Range"]!=null)

{

Response.StatusCode = 206;

p = long.Parse( Request.Headers["Range"].Replace("bytes=","").Replace("-",""));

}

if(p != 0)

{

Response.AddHeader("Content-Range","bytes " + p.ToString() + "-" + ((long)(dataToRead - 1)).ToString() + "/" + dataToRead.ToString());

}

Response.AddHeader("Content-Length",((long)(dataToRead-p)).ToString());

Response.ContentType = "application/octet-stream";

Response.AddHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode(Request.ContentEncoding.GetBytes(filename)));

iStream.Position = p;

dataToRead = dataToRead - p;

// Read the bytes.

while (dataToRead > 0)

{

// Verify that the client is connected.

if (Response.IsClientConnected)

{

// Read the data in buffer.

length = iStream.Read(buffer, 0, 10240);

// Write the data to the current output stream.

Response.OutputStream.Write(buffer, 0, length);

// Flush the data to the HTML output.

Response.Flush();

buffer= new Byte[10240];

dataToRead = dataToRead - length;

}

else

{

//prevent infinite loop if user disconnects

dataToRead = -1;

}

}

}

catch (Exception ex)

{

// Trap the error, if any.

Response.Write("Error : " + ex.Message);

&nb

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航