求救,实现的下载功能用迅雷下载时为什么老是下载的是那个页面????

自由小菜园 2009-07-15 10:56:36
我有一个下载附件的功能,可是当用迅雷下载时老是去下载那个页面,而不是下载那个附件。而Windows系统的下载却可以正确下载那个文件,这是怎么回事啊????下面是我的代码

string name = listAttachment.SelectedValue;//这是一个有多个附件的ListBox控件
string fullName = Server.MapPath("..\\..\\UpLoads\\" + name);
FileInfo fileInfo = new FileInfo(fullName);

Response.Clear();
Response.ClearContent();
Response.ClearHeaders();


Response.AddHeader("Content-Disposition", "attachment;filename=" + name);
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.AddHeader("Content-Transfer-Encoding", "binary");
Response.ContentType = "application/octet-stream";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
Response.WriteFile(fileInfo.FullName);
Response.Flush();
Response.End();
...全文
1680 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wealane 2011-06-15
  • 打赏
  • 举报
回复
都不知道在说什么!
小呆静心 2010-12-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 saisky 的回复:]
讯雷下载请求你这个页面时,实际上应当是请求两次或以上
也就是说,第一次请求你页面时,你配带的参数应该是用来说明是请求下载的
在这个过程里,如果你是动态生成文件的话,你在接受到这个参数后就应该去生成此文件,如一个报表等
然后重新定向一下你的页面,此时应当配带一个file的参数用来指向你文件的名称(如果不是动态生成的文件,就直接指向地址,不需要生成过程)
你再接受file参数的时候,把路径配带……
[/Quote]

不明白啊,能具体点吗??
paul_C 2010-11-11
  • 打赏
  • 举报
回复
来 看看
  • 打赏
  • 举报
回复
dddddddddddd
Bodil 2009-07-22
  • 打赏
  • 举报
回复
其实迅雷下载不了是因为迅雷对地址进行2次请求 而它的请求是使用迅雷自己的方法来创建的线程来请求资源的 而如果你使用了 Session来判定是否允许下载的话 你当前的Session是为当前浏览器所保存的 而迅雷那个线程的Session是没有值的 所以服务器就拒绝让它下载 因此 要想使用迅雷来下载的话 就不要使用Session来判定是否允许下载 或者使用其它的解决方案(这个方案我也正在想,不是楼上的那个)
saisky 2009-07-15
  • 打赏
  • 举报
回复
讯雷下载请求你这个页面时,实际上应当是请求两次或以上
也就是说,第一次请求你页面时,你配带的参数应该是用来说明是请求下载的
在这个过程里,如果你是动态生成文件的话,你在接受到这个参数后就应该去生成此文件,如一个报表等
然后重新定向一下你的页面,此时应当配带一个file的参数用来指向你文件的名称(如果不是动态生成的文件,就直接指向地址,不需要生成过程)
你再接受file参数的时候,把路径配带上,并输出下载
这样的好处是隐藏了文件的真实地址
当然不为了这个的话,你大可以直接把文件真实地址输出下载即可
gongsun 2009-07-15
  • 打赏
  • 举报
回复
url解析问题。

下载地址可能被加密,用户通过http下载时,会调用自己写的一个类去解密下载地址。

迅雷不可能去解密你自己写的加密算法,你可以自己写个下载的软件。
自由小菜园 2009-07-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fox1025701 的回复:]
程序没错误,主要原因可能在于附件的路径问题,路径不对,所以导致下载的是页面,路径对的话在看下是不是有这个附件,没附件的话也会出这样的错误。
[/Quote]
路径肯定正确,而且附件也肯定存在,因为Windows系统本身可以正确的下载下来
fox1025701 2009-07-15
  • 打赏
  • 举报
回复
程序没错误,主要原因可能在于附件的路径问题,路径不对,所以导致下载的是页面,路径对的话在看下是不是有这个附件,没附件的话也会出这样的错误。
自由小菜园 2009-07-15
  • 打赏
  • 举报
回复
那怎么办啊,关键是有迅雷存在,你点击下载时,迅雷自动会开起来啊
chen_ya_ping 2009-07-15
  • 打赏
  • 举报
回复
那你写的要跟那个迅雷的URL解析式一样的才可以被解析到。那样才可以确保下载的东西是正确的。
xingzhiasa 2009-07-15
  • 打赏
  • 举报
回复
用迅雷下载要调用迅雷组件写代码才行……

要么就直接一个文件地址让迅雷直接捕获去……

62,071

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧