我有一个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兆字节的附件简单的字节数组扩展以适合整个文件。我如何限制尺寸?更好的是,有没有办法在实际尝试下载之前获取附件的多少字节?
答案 0 :(得分:0)
part.inputStream.available()
会给你一个合理的近似值吗?
修改强>
或者,part.size
可能会为您提供附件的编码大小。我看到over here将此值乘以0.65
应该会给出最终附件大小的粗略近似值