从数据库提供文件时指定Content-Length

时间:2011-12-07 09:00:02

标签: java tomcat servlets

在servlet中,我想从我的数据库中读取EML并使用“下载文件”UI将其提供给客户端。当我指定Content-Length标题时,下载需要几分钟才能开始。当我不这样做时,一切都运作良好,但我确实想要设置标题:)我缺少什么?

// part is javax.mail.Part
response.setHeader("Content-Disposition", "attachment" + filename);
response.setContentType(mime);
response.setContentLength(part.getSize()); // This line causes the problem
IOUtils.copy(part.getInputStream(), out);

1 个答案:

答案 0 :(得分:2)

只是一个猜测 - 也许必须从DB获取文件才能获得它的大小?将大小保存到单独的列并从那里提供值。通过 java.sql.Blob 处理文件在DB中也应该有效。

不幸的是,在您的示例中,没有关于从哪里获取零件对象的信息。