首页 新闻 会员 周边 捐助

MVC中的File()用讯雷下载会报错,求解决?

0
悬赏园豆:80 [待解决问题]

MVC中的File()向客户端发送文件时,用浏览器自带的下载功能可以下,但用讯雷下却会报错。如何解决啊?下的是一个PDF文件。

南昌——Quan的主页 南昌——Quan | 初学一级 | 园豆:24
提问于:2014-05-27 18:00
< >
分享
所有回答(8)
0

你是不是直接从磁盘上读取文件返回的,

那有可能会锁住文件,你直接用浏览器因为是单线程的所以没有问题,但如果你2个一起下就会出异常了

猜测```迅雷一般都会想原连接发送多个请求

吴瑞祥 | 园豆:29449 (高人七级) | 2014-05-27 18:04

我用了2 种方式:1直接返回文件路径,2将文件用new File()打开成文件流。用讯雷下都会出现讯雷提示:任务出错。

支持(0) 反对(0) 南昌——Quan | 园豆:24 (初学一级) | 2014-05-27 18:07

@南昌——Quan: 正常,你的处理方法不对.

1.加锁

2.将文件读取到内存中

3.释放锁

4.返回内存流

这个会有内存占用问题,不过可以优化,但应该迅雷下载就不会报错了.而且mvc的fileresult能支持断点续传吗?

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2014-05-27 18:15
0

明显是迅雷自己的问题,这个你也要解决?

你好伟大

[秦时明月] | 园豆:738 (小虾三级) | 2014-05-27 19:13
0

你这个问题我遇到过,后来发现迅雷会访问File() 方法2遍,而且第二次的时候会把给File传的参数什么的丢掉(中文会乱码),而迅雷报错的原因往往就是第二遍发生的,所以后来想的解决办法是,前台点a标签或下载按钮的时候,通过js控制调用后台方法返回string的文件路径,然后通过前台js window.open 打开文件路径下载就行了

天浩-Jeffery | 园豆:14 (初学一级) | 2014-05-27 21:03
0

mvc的file不支持续传功能,需要自己写。

sheng00 | 园豆:324 (菜鸟二级) | 2014-05-28 11:00
0

我也看到了这个问题。是迅雷开启的原因。。不知道能不能使用代码关闭迅雷来实现这个操作。这样做的话不知道合不合理

呓语鑫 | 园豆:313 (菜鸟二级) | 2014-05-28 11:51
0

用 context.HttpContext.Response.TransmitFile 

应该可以支持断点续传.

gunsmoke | 园豆:3592 (老鸟四级) | 2014-05-28 12:04
0

迅雷下载的地址都是下载一个固定的文件路径,如果你post参数,然后动态返回文件,这个迅雷是实现不了的,get方式传参你可以试试。

Rookier | 园豆:652 (小虾三级) | 2014-05-28 14:30
0

我也十分想不通,怎么会出错,难道楼主的PDF很大?

xinsiyus | 园豆:153 (初学一级) | 2014-05-29 14:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册