使用Grooy / Grails + Javamail读取带有文件大小限制的电子邮件附件

时间:2011-06-13 12:16:55

标签: groovy javamail

我有一个Groovy / Grails网络应用程序,可以从Gmail中读取电子邮件。它很好地获取了消息和附件,但我想限制我收到的附件的大小。目前我有这段代码来阅读附件:

byte[] file = new byte[maxSizeInBytes]

BufferedInputStream bis = new BufferedInputStream(part.getInputStream())
try {
    file = bis.getBytes()
} catch (Exception e) {
    ...
}

这里的问题是Groovy只是扩展字节数组以适应任何进来,所以如果我的maxSizeInBytes设置为5兆字节(5 * 1024 * 1024),并且我收到一个10兆字节的附件简单的字节数组扩展以适合整个文件。我如何限制尺寸?更好的是,有没有办法在实际尝试下载之前获取附件的多少字节?

1 个答案:

答案 0 :(得分:0)

part.inputStream.available()会给你一个合理的近似值吗?

修改

或者,part.size可能会为您提供附件的编码大小。我看到over here将此值乘以0.65应该会给出最终附件大小的粗略近似值