导出excel提供下载时,与迅雷5冲突

waiwai1015 2010-03-31 08:52:57
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.AppendHeader("content-disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode("广告播放", System.Text.Encoding.UTF8) + ".xls");
Response.ContentType = "Application/excel";
Response.WriteFile(filePath);
Response.End();
用这段代码提供导出excel提供下载功能,如果机器上装了迅雷5,就启动了迅雷5,并且下载的是当前的页面,而不是真正的excel内容。
web迅雷就不会。
...全文
577 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
wosizy 2010-04-02
  • 打赏
  • 举报
回复
waiwai1015 2010-04-02
  • 打赏
  • 举报
回复
19楼的,我本地保存了之后才下载的
火星大能猫 2010-04-01
  • 打赏
  • 举报
回复
现在本地save然后再输出呢
waiwai1015 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 liaolian9948 的回复:]
那就不要用這種只是改類型為excel的方法嘛。。

用COM+組件將數據插入EXCEL。。這樣就沒問題了
[/Quote]
能详细点不
我确实用的是com组件
liaolian9948 2010-03-31
  • 打赏
  • 举报
回复
那就不要用這種只是改類型為excel的方法嘛。。

用COM+組件將數據插入EXCEL。。這樣就沒問題了
telankes2000 2010-03-31
  • 打赏
  • 举报
回复
try

private void ReadFile(string filePath,HttpContext context,string downLoadType)
{
try
{
using(FileStream fs= new FileStream(filePath,FileMode.Open,FileAccess.Read, FileShare.Read))
{
string fileName = Path.GetFileName(filePath);
string encodeFileName = HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(Path.GetFileNameWithoutExtension(filePath)));
string fileExtension = Path.GetExtension(filePath);
if(fileExtension == ".xls" && encodeFileName.Length > 215)
encodeFileName = encodeFileName.Substring(0,210);
context.Response.ClearContent();
context.Response.Clear();
context.Response.ContentEncoding = System.Text.Encoding.UTF8;
context.Response.AddHeader("Content-Length", fs.Length.ToString());
context.Response.ContentType = "application/octet-stream";
context.Response.AddHeader("Content-Disposition", ""+downLoadType+"; filename=" + encodeFileName + fileExtension+"");
int readLength = 0;
byte[] buffer = new Byte[10240];//緩沖區大小 10k
while(true)
{
if(context.Response.IsClientConnected)
{
readLength = fs.Read(buffer,0,10240);
if(readLength == 0)break;
context.Response.OutputStream.Write(buffer, 0, readLength);
context.Response.Flush();
}
else
{
break;
}
}

context.Response.Close();
}
}
catch(Exception ex)
{
throw ex;
}
if(this.IsDelete){
DeleteFile(filePath);
}
}
public void ProcessRequest(HttpContext context)
{
if(context.Request["fn"] != null)
{
string filePath = Utils.Util.DecryptFileName(context.Request.QueryString["fn"].ToString().Trim()); //通过解密得到文件名
this._isDelete = context.Request.QueryString["d"] != null;
ReadFile(filePath,context,context.Request.QueryString["t"] == null ? "attachment" : "inline");//attachment:附件模式;inline在線模式
}
}

likevs 2010-03-31
  • 打赏
  • 举报
回复
迅雷真是越来越牛X了,现在

不过却害惨了楼主,哈
waiwai1015 2010-03-31
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 honkerhero 的回复:]
连接边上弄个红字提醒,不支持迅雷下载
[/Quote]
也是个可行的办法呵呵
honkerhero 2010-03-31
  • 打赏
  • 举报
回复
连接边上弄个红字提醒,不支持迅雷下载
waiwai1015 2010-03-31
  • 打赏
  • 举报
回复
有没有办法在代码里不让迅雷去响应
huyouhula 2010-03-31
  • 打赏
  • 举报
回复
设置下迅雷··不主动响应IE浏览器的下载链接···
waiwai1015 2010-03-31
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wukaiping870123 的回复:]
那没办法.很多网站直接用迅雷也会出问题.
[/Quote]
你说的很对,可多网站这个问题都没解决了。
火星大能猫 2010-03-31
  • 打赏
  • 举报
回复
那没办法.很多网站直接用迅雷也会出问题.
waiwai1015 2010-03-31
  • 打赏
  • 举报
回复
可是给用户用呀,难道告诉人家不能用迅雷下吗
  • 打赏
  • 举报
回复
我之前也遇到过 不过我没有用迅雷下载 哈哈哈 点取消之后 会有一个本地下载的
火星大能猫 2010-03-31
  • 打赏
  • 举报
回复
右击迅雷悬浮窗 取消 浏览器的监视
设置
取消迅雷作为默认下载工具
waiwai1015 2010-03-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lost_painting 的回复:]
跟代码无关,跟迅雷的设置相关.
迅雷里面可以设置下载什么样后缀名的文件时启动迅雷下载.

不明白的可以去迅雷官方看帮助文档.
[/Quote]
那有什么方法不让迅雷启动吗
gongsun 2010-03-31
  • 打赏
  • 举报
回复
你把迅雷5给卸载了 就可以了。

哈哈。
鸭梨山大帝 2010-03-31
  • 打赏
  • 举报
回复
跟代码无关,跟迅雷的设置相关.
迅雷里面可以设置下载什么样后缀名的文件时启动迅雷下载.

不明白的可以去迅雷官方看帮助文档.
waiwai1015 2010-03-31
  • 打赏
  • 举报
回复
怎么办呀,怎么让迅雷5提供的下载也是我想真正下载的内容
加载更多回复(1)

62,266

社区成员

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

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

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

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