文件下载统一通过download.aspx页面处理,支持同时下载多个文件,最终以压缩包的方式下载。下载的文件列表通过post方式传递,如a.txt,b.txt..eg。压缩后文件打下基本在1G左右。
怎么实现?最好可以支持下载工具
换一种说法
假如服务器上有a.txt,b.txt...z.txt,每个文件都超过400M。
现要下载其中任意多个文件,最后以压缩包的方式下载。文件参数通过post发送,这样参数长度没有限制。
怎么可以实现大文件下载?最好可以支持下载工具
这么大,你还是搞个FTP吧。。。批量下载就是把要下载的文件名提交到服务器,服务器打包为一个压缩包,然后返回压缩包地址,客户端重定向到压缩包地址。(可你的压缩包太大,所以交给ftp吧)
虽然类似于批量下载,但要求下载的文件只能有一个,所以才将文件压缩在一个包里。比如说项目合同下载,客户得到的是项目合同的压缩包,里面是项目的各种合同。不能把合同单独分开。
@lucika.zh: 没错,所以我说的就是要打包,不过挺赞同大叔的话,你这就是伪需求。别说批量,就单独下载,你的服务器也够呛。
每个文件都超过400M的话,那么压缩就是一个很消耗CPU的事情了,服务器会受不了的。
产品狗可以天马行空,胡思乱想,程序猿必须有理智和足够的技术能力分析可能性和利弊。
压缩的目的就是将很多文件放在一个文件中。这个是不能改的,硬性指标。
@lucika.zh: 没事的,只要愿意付出代价,没啥不可以的。
不要哭穷和买不起服务器就行。
很多时候,我们说不建议,是因为性价比,但是如果你是每个总统,买钢笔你不需要考虑性价比。
如果你是CIA,为了某些情报你可能也不需要考虑性价比。
简单说,为了打包成一个文件,我可以付出1千万,那就好办。
通常存在的问题是,提需求的人以为只需要五毛钱那么多,你告诉他需要五百万,换种方法只需要5万。他就明白他的需求只是个假的需求。
@爱编程的大叔: 精辟
@爱编程的大叔: 不出方案,不帮忙解决问题,而是讨论问题是否合理,可以绕道。懂不懂什么是现实?
@lucika.zh: 现实是有些人听不进别人的意见,非要往南墙上撞,我也没有办法。
现在很多网站都有这种功能,网盘、Github都有,无非就是ZIP直接写入流,可以压缩也可以不压缩只打包,不是很难,若不是悬赏太少了我就接了
谢谢。
实现服务端下载的断点续传功能即可,使用文件流的方式异步读取,如果在请求头里有Range标记,则按照标记的位移将对应的流偏移