如何使用Angularjs、Java、Tomcat、Spring和REST下载10GB文件?
当我下载小文件时,一切正常,但我需要一些方法来下载大文件。如果文件较大,则未创建Blob,内存不足。 下载文件而不在客户端保存,直接保存到磁盘上,服务器上有许多请求或类似的东西 我在服务器上的代码是:如何使用Angularjs、Java、Tomcat、Spring和REST下载10GB文件?,java,angularjs,spring,rest,tomcat,Java,Angularjs,Spring,Rest,Tomcat,当我下载小文件时,一切正常,但我需要一些方法来下载大文件。如果文件较大,则未创建Blob,内存不足。 下载文件而不在客户端保存,直接保存到磁盘上,服务器上有许多请求或类似的东西 我在服务器上的代码是: @RequestMapping(value = "/oneFile/{name}", method = RequestMethod.GET) public void getOneFile( @PathVariable("name") String name, HttpServletResp
@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%的上传时断开连接,他需要再次上传整个文件 这里举一个例子:
这里有一个很好的例子:使用Amazon S3及其SDK。您需要将文件拆分为多个文件,并使用服务器重建文件。 因为上传一个大文件而不拆分它是一种不好的做法,用户可以在99%的上传时断开连接,他需要再次上传整个文件 这里举一个例子:
这里有一个很好的例子:AmazonS3和他们的SDK。这不是解决问题的正确方法。你应该从其他方面考虑,例如FTP、BitTorrent……如果可能的话,我希望没有FTP、BitTorrent或类似的东西。。。如果可能的话。。。如果没有,我必须这样做。你有一个10GB的csv文件吗?这仍然是一种方式,类型是没有问题的。如果我下载500MB的zip文件,一切正常,但如果我下载2GB或更大的zip文件,我会遇到问题。我的应用程序正在使用spring引导服务,我正试图从那里将400 MB的zip文件发送到客户端。。但“保存文件”框在大约15分钟后出现太晚。。我不太清楚。。我的用户界面有棱角。。为了确定我做错了什么,这不是解决问题的正确方法。你应该从其他方面考虑,例如FTP、BitTorrent……如果可能的话,我希望没有FTP、BitTorrent或类似的东西。。。如果可能的话。。。如果没有,我必须这样做。你有一个10GB的csv文件吗?这仍然是一种方式,类型是没有问题的。如果我下载500MB的zip文件,一切正常,但如果我下载2GB或更大的zip文件,我会遇到问题。我的应用程序正在使用spring引导服务,我正试图从那里将400 MB的zip文件发送到客户端。。但“保存文件”框在大约15分钟后出现太晚。。我不太清楚。。我的用户界面有棱角。。为了确定我做错了什么,这会很有帮助,但如果我明白这是为了上传文件,我需要一些东西来下载文件?是的,下载也是一样,如果你有一个大文件,你需要把它分成小块,浏览器会在最后重新编译所有文件。就像我想的那样。这里的更多信息:这会很有帮助,但是如果我明白这是为了上传文件,我需要一些东西来下载文件?是的,下载也是一样的,如果你有一个大文件,你需要将它分成小块,浏览器将在最后重新编译所有文件。就像我想的那样。更多信息请点击此处: