나모 대용량 이미지 첨부시 속도 저하문제 처리
public String getBodyContent()
throws MimeDecodeException, UnsupportedEncodingException
{
String decodeText = null;
if(decodePart.size() <= 0)
return null;
MimePart part = (MimePart)decodePart.elementAt(0);
decodeText = part.getBodypart();
if(part.getEncoding() == null)
return part.getBodypart();
byte decodeByte[];
try
{
InputStream is = new ByteArrayInputStream(part.getBodypart().getBytes("iso-8859-1"));
BufferedInputStream bis = null;
try
{
is = MimeUtility.decode(is, part.getEncoding());
bis = new BufferedInputStream(is);
}
catch(MessagingException me)
{
throw new MimeDecodeException("Cannot Decoding");
}
decodeByte = new byte[is.available() + 1];
// is.read(decodeByte);
int read = 0;
int pos = 0;
byte b[] = new byte[1024];
try{
while((read = bis.read(b)) != -1){
System.arraycopy(b, 0, decodeByte, pos, read);
pos += read;
// os.write(b,0,read );
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// os.close();
}
}
catch(IOException ioe)
{
throw new MimeDecodeException("Cannot create input stream");
}
decodeText = new String(decodeByte);
if(multipart)
decodeText = changeCIDPath(decodeText);
return decodeText;
}
public void saveFile()
throws MimeDecodeException
{
String fileExt = "";
fileInfo = new Hashtable();
Vector vFileExt = new Vector();
Vector vFileSize = new Vector();
Vector vFileNm = new Vector();
for(int i = 1; i < decodePart.size(); i++)
{
File outFile = null;
OutputStream os = null;
InputStream is = null;
MimePart part = (MimePart)decodePart.elementAt(i);
try
{
is = new ByteArrayInputStream(part.getBodypart().getBytes("iso-8859-1"));
is = MimeUtility.decode(is, part.getEncoding());
BufferedInputStream bis = new BufferedInputStream(is);
outFile = new File(getWritableFileName(savePath + "/" + part.getName()));
os = new FileOutputStream(outFile);
String fileName = getWritableFileName(part.getName());
// fileContent = new byte[is.available() + 1];
// is.read(fileContent);
// part.setName(fileName);
// os.write(fileContent);
int read = 0;
byte b[] = new byte[1024];
try{
while((read = bis.read(b)) != -1){
os.write(b,0,read );
}
} catch (Exception e) {
e.printStackTrace();
} finally {
os.close();
}
if(fileName != null)
{
int idx = fileName.lastIndexOf(".");
if(idx != -1)
fileExt = fileName.substring(idx + 1);
File f = new File(savePath + "/" + fileName);
vFileExt.add(fileExt.toLowerCase());
vFileSize.add("" + f.length());
vFileNm.add(fileName);
}
}
catch(FileNotFoundException fnfe)
{
throw new MimeDecodeException("Cannot create file");
}
catch(IOException ioe)
{
throw new MimeDecodeException("Cannot write file");
}
catch(MessagingException me)
{
throw new MimeDecodeException("Cannot decode file");
}
}
fileInfo.put("wec_fileExt", ((Object) (vFileExt.toArray())));
fileInfo.put("wec_fileSize", ((Object) (vFileSize.toArray())));
fileInfo.put("wec_fileNm", ((Object) (vFileNm.toArray())));
fileInfo.put("wec_filePath", savePath);
}