Java 如何使用wicket中的zip文件下载来下载更大的文件?
我想加载zip文件,它最大可达50MB。目前,我正在使用以下IModel对象的getObject方法返回zip文件Java 如何使用wicket中的zip文件下载来下载更大的文件?,java,performance,download,wicket,Java,Performance,Download,Wicket,我想加载zip文件,它最大可达50MB。目前,我正在使用以下IModel对象的getObject方法返回zip文件 IModel fileModel = new AbstractReadOnlyModel() { public Object getObject() { ..... ZipOutputStream zip = null; FileOutputStream fileWriter = null; fileWriter = new FileOutputStream
IModel fileModel = new AbstractReadOnlyModel() {
public Object getObject() {
.....
ZipOutputStream zip = null;
FileOutputStream fileWriter = null;
fileWriter = new FileOutputStream(destZipFile);
zip = new ZipOutputStream(fileWriter);
/*Add the zip file in the folder*/
return new File(zipFilePath);
}
以下是下载链接
reportLink = new DownloadLink(this.getString("id.reportslink"),
fileModel) {
private static final long serialVersionUID = 1L;
}
当前JVM堆大小为1GB,如果有20个用户同时下载文件(假设每个文件50MB),则以上代码将崩溃。任何人都可以提出建议,什么是实现下载文件的最佳方式,这样即使一次最多有100个用户,它也不会崩溃 建议您在发送给定数量的数据后刷新输出流。建议您在发送给定数量的数据后刷新输出流。我建议您使用动态资源,而不是简单的下载链接 您可以创建自己的AbstractResource实现,将文件写入OutputStream,然后创建ResourceLink,而不是指向该资源的DownloadLink
查看Wicket免费指南中的第13.6章。我建议您使用动态资源,而不是简单的下载链接 您可以创建自己的AbstractResource实现,将文件写入OutputStream,然后创建ResourceLink,而不是指向该资源的DownloadLink 请参阅《导叶自由指南》中的第13.6章