C#从服务端下载文件wrtitefile分块下载没反应

.Net技术 码拜 9年前 (2016-02-24) 1049次浏览
为什么本人点击下载按钮之后浏览器没反应。下载的文件去哪了

 string fileName = "downLoadFile.txt";
                string filePath = context.Server.MapPath("downLoadFile.txt");
                FileInfo fileinfo = new FileInfo(filePath);
                if (fileinfo.Exists == true)
                {
                    const long size = 102400;
                    byte[] buffer = new byte[size];
                    context.Response.Clear();
                    FileStream fileStream = File.OpenRead(filePath);
                    long fileLength = fileStream.Length;
                    context.Response.ContentType = "application/octet-stream";
                    context.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName));
                    //假如客户端连在服务器上
                    while (fileLength > 0 && context.Response.IsClientConnected)
                    {
                        int lengthRead = fileStream.Read(buffer, 0, Convert.ToInt32(size));
                        context.Response.OutputStream.Write(buffer, 0, lengthRead);
                        context.Response.Flush();
                        fileLength = fileLength - lengthRead;
                    }
解决方案

20

所谓“提示下载到那里”这是一个冠冕堂皇的说法,所以非专业的人容易看不懂其是指。假如让本人举个例子,那么本人可以这样举例:
某网页,当用户点击“下载您的购物清单”按钮时,实际上它下载了一个密码配置或应用扩展文件,目标是去覆盖用户电脑上的特定目录下的信用卡信息文件,或用户登录权限文件。不搞专业的的用户根本看不懂你的提示有什么风险,还以为网站是下载购物清单呢,所以总会有许多用户盲目地点击“确认”按钮。然后网站就获得了用户电脑的远程访问权了,原因是他把人家密码覆盖掉了,或是至少植入了会被文件系统访问到、启动的木马程序。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C#从服务端下载文件wrtitefile分块下载没反应
喜欢 (0)
[1034331897@qq.com]
分享 (0)