我们正在运行tomcat,我们正在生成pdf文件。我手头没有文件大小,所以我无法直接链接到服务器上的文件。所以我直接发送输出。
response.setContentType("application/force-download");
OutputStream o = response.getOutputStream();
然后我直接输出到这个OutputStream。
唯一的问题是接收器没有获取文件大小,所以他们不知道下载需要多长时间。有没有办法告诉响应文件有多大?
修改 我知道文件大小,我只是不能告诉STREAM这个文件有多大。
答案 0 :(得分:5)
响应对象应该有setContentLength方法:
// Assumes response is a ServletResponse
response.setContentLength(sizeHere);
答案 1 :(得分:1)
将PDF字节流序列化为文件或字节数组计算其大小,设置大小并将其写入输出流。
答案 2 :(得分:0)
我相信你在回答自己的问题: 引用: 我手头没有文件大小,所以我直接发送输出。
如果您没有尺寸,则无法发送....
答案 3 :(得分:0)
为什么不动态生成PDF文件到临时文件系统或ram-base文件系统或内存映射文件。然后你就可以得到文件大小了。
response.setContentType( “应用程序/力下载”); response.setContentLength(sizeHere); OutputStream o = response.getOutputStream();