繁体   English   中英

如何使用Angularjs,Java,Tomcat,Spring和REST下载10GB文件?

[英]How to download 10GB file with Angularjs, Java, Tomcat,Spring and REST?

当我下载小文件时,一切都很好,但是我需要某种方式来下载大文件。 如果文件很大,则表示Blob未创建,没有足够的内存。 下载文件时无需保存在客户端上,可以将服务器上有很多请求的文件直接保存到磁盘等。

我在服务器上的代码是:

@RequestMapping(value = "/oneFile/{name}", method = RequestMethod.GET)
    public void getOneFile( @PathVariable("name") String name, HttpServletResponse response,HttpServletRequest request) {
                ....
                InputStream in = new FileInputStream(new File(file.getAbsolutePath()));
                org.apache.commons.io.IOUtils.copy(in, response.getOutputStream());
                response.flushBuffer();

在客户端上,这适用于小尺寸:

backupFileServer.downloadOneFileBrow(data)
                        .success(function(databack) {

                            var file = new Blob([ databack ], {
                                type : 'application/csv'
                            });
                            var fileURL = URL.createObjectURL(file);
                            var a = document.createElement('a');
                            a.href = fileURL;
                            a.target = '_blank';
                            a.download = data;
                            document.body.appendChild(a);
                            a.click();
                        })
                        .error(function() {
                            alert($scope.DOWNLOAD_ERROR);
                        });

我尝试了类似的方法,但是没有用:

var a = document.createElement('a');
                               a.href = 'data:attachment/csv;charset=utf-8,' + encodeURI(databack);
                               a.target = '_blank';
                               a.download = data;
                               document.body.appendChild(a);
                               a.click();

某人如何构思此操作或某些示例或代码的方式....
先感谢您

您需要将文件拆分为多个文件,然后使用服务器重建该文件。 由于不上传大文件而不拆分文件是不明智的做法,因此用户在上载内容的99%时可能会断开连接,因此他需要重新上传整个文件。

此处的示例: https : //flowjs.github.io/ng-flow/

此处的一个很好的例子: http : //ryansouthgate.com/2015/12/24/upload-amazon-s3-using-angularjs/和Amazon S3及其SDK。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM