Message msg = mailbox.getCurrentFolder().getMessageById( Long.parseLong( messageId ) );
List<MimePart> attachmentList = MessageUtils.attachmentsFromPart( msg );
int index = Integer.valueOf( attachmentIndex );
MimePart retrievePart = attachmentList.get( index );
ContentType contentType = new ContentType( retrievePart.getContentType() );
String fileName = retrievePart.getFileName();
if ( StringUtils.isEmpty( fileName ) ) {
fileName = context
.getMessage( "message.unknown.attachment", null, SessionManager.get().getLocale() );
}
StringBuffer contentDisposition = new StringBuffer();
if ( !view ) {
contentDisposition.append( "attachment; filename=\"" );
contentDisposition.append( fileName ).append( "\"" );
}
response.setHeader( "cache-control", "no-store" );
response.setHeader( "pragma", "no-cache" );
response.setIntHeader( "max-age", 0 );
response.setIntHeader( "expires", 0 );
if ( !StringUtils.isEmpty( contentDisposition.toString() ) ) {
response.setHeader( "Content-disposition", contentDisposition.toString() );
}
response.setContentType( contentType.getBaseType() );
// response.setContentLength(
// MessageUtils.calculateSizeFromPart( retrievePart ) );
BufferedInputStream bufInputStream = new BufferedInputStream( retrievePart.getInputStream() );
OutputStream outputStream = response.getOutputStream();
byte[] inBuf = new byte[1024];
int len = 0;
int total = 0;