我们正在运行tomcat,我们正在生成pdf文件。我手头没有文件大小,所以我无法直接链接到服务器上的文件。所以我直接发送输出。

response.setContentType("application/force-download");
OutputStream o = response.getOutputStream();

然后我直接输出到这个OutputStream。

唯一的问题是接收器没有获取文件大小,所以他们不知道下载需要多长时间。有没有办法告诉响应文件有多大?

修改   我知道文件大小,我只是不能告诉STREAM这个文件有多大。

有帮助吗?

解决方案

响应对象应该有 setContentLength 方法:

// Assumes response is a ServletResponse
response.setContentLength(sizeHere);

其他提示

将PDF字节流序列化为文件或字节数组计算其大小,设置大小并将其写入输出流。

我相信你自己在回答这个问题: 引用: 我手头没有文件大小,所以我直接发送输出。

如果您没有尺寸,则无法发送....

为什么不动态生成PDF文件到临时文件系统或ram-base文件系统或内存映射文件。然后你就可以得到文件大小了。

response.setContentType(QUOT;应用/力下载&QUOT); response.setContentLength(sizeHere); OutputStream o = response.getOutputStream();

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top