Code sample to upload files in File Store using Java
- import java.io.File;
- import java.util.List;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import com.catalyst.advanced.CatalystAdvancedIOHandler;
- import org.apache.commons.fileupload.FileItem;
- import org.apache.commons.fileupload.FileItemFactory;
- import org.apache.commons.fileupload.disk.DiskFileItemFactory;
- import org.apache.commons.fileupload.servlet.ServletFileUpload;
- import org.apache.commons.io.FileUtils;
- import org.json.simple.JSONObject;
- public class MultipartDataExample implements CatalystAdvancedIOHandler {
-
- private static final Logger LOGGER = Logger.getLogger(InvoiceProcessor.class.getName());
- static String POST = "POST";
- JSONObject responseData = new JSONObject();
- @Override
- @SuppressWarnings("unchecked")
- public void runner(HttpServletRequest request, HttpServletResponse response) throws Exception {
- try {
- String url = request.getRequestURI();
- String method = request.getMethod();
- if ((url.equals("/processFile")) && method.equals(POST)) {
- FileItemFactory factory = new DiskFileItemFactory();
- ServletFileUpload upload = new ServletFileUpload(factory);
- List<FileItem> items = upload.parseRequest(request);
- //The List Items will contain your multipart data. You can iterate the list to get your file object and then use it according to your logic.
-
- } else {
- LOGGER.log(Level.SEVERE, "Error. Invalid Request");
- responseData.put("error", "Request Endpoint not found");
- response.setStatus(404);
- }
- } catch (Exception e) {
- LOGGER.log(Level.SEVERE, "Exception in InvoiceProcessor", e);
- responseData.put("error", "Internal server error occurred. Please try again in some time.");
- response.getWriter().write(responseData.toString());
- response.setStatus(500);
- }
- }
- }