http下载,通过文件流写到客户端,取消后再点击不再有反映???--真的不想把这个问题留到明年!!!
为了下面这个问题,我已经开了3个贴,:(
private void Button1_Click(object sender, System.EventArgs e)
{
Stream iStream = null;
string FilePath="f:/clips/Test/Test2.dll";
iStream = new FileStream(FilePath,FileMode.Open,FileAccess.Read,FileShare.Read);
Response.Clear();
Response.ContentType = "application/ms-download";
string FileName="下载速度测试";
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(FileName,System.Text.Encoding.UTF8));
Response.AddHeader("Content-Length", iStream.Length.ToString());
Response.Flush();
int len=1;
while(len>0)
{
byte[] buffer=new Byte[65532];
len = iStream.Read(buffer,0,65532);
Response.OutputStream.Write(buffer,0,len);
Response.Flush();
}
}
我运行上面那段代码,只有在打了SP1的IE6上运行正常,其他版本的IE,都会出现下面的情况:
在选择文件路径的保存对话框中点取消,或在下载中途点取消后,再去点下载按钮,网页就死在那里。
请问问什么会出现这种情况,怎么解决?
buffer设成多大比较合适,用户反映下载速度太慢(是用来下载电影这样的大文件的),buffer是不是在服务器端开设的,如果设的太大,是不是用户稍稍一多,服务器就撑不住了?
如果我要客户端有300kb/s的下载速度,在服务器端的buffer应该开多大?