首页 新闻 会员 周边

asp.net 大文件下载

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

文件下载统一通过download.aspx页面处理,支持同时下载多个文件,最终以压缩包的方式下载。下载的文件列表通过post方式传递,如a.txt,b.txt..eg。压缩后文件打下基本在1G左右。

怎么实现?最好可以支持下载工具

问题补充:

换一种说法

假如服务器上有a.txt,b.txt...z.txt,每个文件都超过400M。

现要下载其中任意多个文件,最后以压缩包的方式下载。文件参数通过post发送,这样参数长度没有限制。

怎么可以实现大文件下载?最好可以支持下载工具

lucika.zh的主页 lucika.zh | 初学一级 | 园豆:62
提问于:2017-07-15 09:38
< >
分享
所有回答(4)
0

这么大,你还是搞个FTP吧。。。批量下载就是把要下载的文件名提交到服务器,服务器打包为一个压缩包,然后返回压缩包地址,客户端重定向到压缩包地址。(可你的压缩包太大,所以交给ftp吧)

幻天芒 | 园豆:37175 (高人七级) | 2017-07-15 10:06

虽然类似于批量下载,但要求下载的文件只能有一个,所以才将文件压缩在一个包里。比如说项目合同下载,客户得到的是项目合同的压缩包,里面是项目的各种合同。不能把合同单独分开。

支持(0) 反对(0) lucika.zh | 园豆:62 (初学一级) | 2017-07-15 10:32

@lucika.zh: 没错,所以我说的就是要打包,不过挺赞同大叔的话,你这就是伪需求。别说批量,就单独下载,你的服务器也够呛。

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2017-07-15 11:47
0

每个文件都超过400M的话,那么压缩就是一个很消耗CPU的事情了,服务器会受不了的。

产品狗可以天马行空,胡思乱想,程序猿必须有理智和足够的技术能力分析可能性和利弊。

爱编程的大叔 | 园豆:30839 (高人七级) | 2017-07-15 10:11

压缩的目的就是将很多文件放在一个文件中。这个是不能改的,硬性指标。

支持(0) 反对(0) lucika.zh | 园豆:62 (初学一级) | 2017-07-15 10:34

@lucika.zh: 没事的,只要愿意付出代价,没啥不可以的。

不要哭穷和买不起服务器就行。

 

很多时候,我们说不建议,是因为性价比,但是如果你是每个总统,买钢笔你不需要考虑性价比。

如果你是CIA,为了某些情报你可能也不需要考虑性价比。

简单说,为了打包成一个文件,我可以付出1千万,那就好办。

 

通常存在的问题是,提需求的人以为只需要五毛钱那么多,你告诉他需要五百万,换种方法只需要5万。他就明白他的需求只是个假的需求。

支持(1) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2017-07-15 10:36

@爱编程的大叔: 精辟

支持(0) 反对(0) 西漠以西 | 园豆:1675 (小虾三级) | 2017-07-15 11:11

@爱编程的大叔: 不出方案,不帮忙解决问题,而是讨论问题是否合理,可以绕道。懂不懂什么是现实?

支持(0) 反对(0) lucika.zh | 园豆:62 (初学一级) | 2017-07-17 11:24

@lucika.zh: 现实是有些人听不进别人的意见,非要往南墙上撞,我也没有办法。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2017-07-17 11:26
0

现在很多网站都有这种功能,网盘、Github都有,无非就是ZIP直接写入流,可以压缩也可以不压缩只打包,不是很难,若不是悬赏太少了我就接了

无泪之魂 | 园豆:287 (菜鸟二级) | 2017-07-15 12:58

谢谢。

支持(0) 反对(0) lucika.zh | 园豆:62 (初学一级) | 2017-07-17 11:18
0

实现服务端下载的断点续传功能即可,使用文件流的方式异步读取,如果在请求头里有Range标记,则按照标记的位移将对应的流偏移

诶碧司 | 园豆:1912 (小虾三级) | 2017-07-17 08:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册