package org.tgdb.webapp.action;
import org.tgdb.exceptions.ApplicationException;
import com.oreilly.servlet.multipart.FilePart;
import com.oreilly.servlet.multipart.MultipartParser;
import com.oreilly.servlet.multipart.Part;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
public class GetFileUploadAction extends TgDbAction {
public GetFileUploadAction() {}
public String getName() {
return "GetFileUploadAction";
}
public boolean performAction(HttpServletRequest request, ServletContext context) throws ApplicationException {
try {
MultipartParser mp = new MultipartParser(request, 100000000);
Part p = mp.readNextPart();
if (p.isFile()) {
FilePart fp1 = (FilePart)p;
InputStream is = fp1.getInputStream();
ByteArrayOutputStream out = new ByteArrayOutputStream();
int c;
while ((c = is.read())!= -1) {
out.write(c);
}
out.flush();
out.close();
byte[] data = out.toByteArray();
logger.debug("---------------------------------------->GetFileUploadAction#performAction: File size = "+data.length);
logger.debug("---------------------------------------->GetFileUploadAction#performAction: Content = "+fp1.getContentType());
resourceManager.saveFile(fp1.getFileName(), fp1.getContentType(), data, null);
data = null;
}
return true;
} catch (ApplicationException e) {
logger.error("---------------------------------------->GetFileUploadAction#performAction: Failed");
throw e;
} catch (Exception e) {
logger.error("---------------------------------------->GetFileUploadAction#performAction: Failed");
throw new ApplicationException("GetFileUploadAction", e);
}
}
}