下载大文件>1GB使用http协议、java和javascript
Download large file >1GB using http protocol, java and javascript
我有一个用于下载文件的web应用程序。除了我想下载超过1GB的文件外,一切都很好。
这是我的java代码:
InputStream in = new FileInputStream(new File(folderFile.getAbsolutePath()));
org.apache.commons.io.IOUtils.copy(in, response.getOutputStream());
response.flushBuffer();
in.close();
HTTP请求:
$http({
method:'get',
url:this.apiDownloadFileUrl,
responseType:'arraybuffer',
cache: false
});
这里是客户端:我在客户端上成功地获得了数据,但当我将其设为Blob时,如果数据大小超过500MB,则不会发生任何事情,也不会下载。此外,我可以下载300MB。。。
如何检查是内存问题还是服务器问题。。。当我从gmail下载时,我可以下载超过1GB的内容。
.success(function(databack) {
var file = new Blob([ databack ], {
type : 'application/csv'
});
var fileURL = window.URL.createObjectURL(file);
var a = document.createElement('a');
a.href = fileURL;
a.target = '_blank';
a.download = data;
document.body.appendChild(a);
a.click();
您是否尝试过使用IOUtils中的copyLarge()方法?对于copy()方法,JavaDoc说:
对于大型流,请使用copyLarge(InputStream,OutputStream)方法。
您应该首先检查响应消息,并决定是哪一方引发了问题。根据我的经验,你应该检查浏览器是否缓存了文件,而不是任何问题~
相关文章:
- Meteor如何接收HTTP请求
- 在我的情况下,如何进行http请求
- //而不是在src=“”上使用http://"属性
- 如何通过JavaScript获取HTTP协议版本
- 在HTTP和HTTPS之间跨协议时使用Amplify进行本地存储
- 下载大文件>1GB使用http协议、java和javascript
- Google钱包错误:请求访问的帧具有“http”协议,被访问的帧具有“http”协议
- http协议对正文大小有限制吗?
- [CORS]跨域请求只支持协议方案:http, data, chrome, chrome-extension, http
- 跨域请求仅支持http协议方案
- XMLHttpRequest;跨域请求只支持协议方案:http, data, chrome, chrome-extens
- 如何在HTTP协议中使用Google Chrome远程调试协议
- 请求访问帧的协议为'https:// ',被访问帧的协议为'http'Linkedin
- 将JSON编码的feed value's image src协议http:替换为https:
- 在相同域但不同端口下,将协议从http更改为https
- 基于 http 或 https 协议动态加载 javascript
- Angular - 仅协议方案支持跨源请求 - 需要解决方法才能在本地运行$http
- 在Javascript中使用//www.example.com是否自动选择了http/https协议
- 跳过url中的HTTP协议不能加载脚本文件
- Nodejs错误:协议"http:"不受支持的.预计“https:“