Spark Framework is a simple and lightweight Java web framework built for rapid development. With Spark it’s possible to start a REST web server with a few lines of code.It is the Java porting of Sinatra: famous micro-framework written in Ruby.The purpose of this post is to explain how to work with Spark for multipart/form-data fileUpload requirement.In different dev community I have seen people searching fix of fileUpload failure of SparkJava framework, so I thought to share the fix that I have encountered and fixed recently.
Spark.post("/files/upload/:userName", "multipart/form-data", new Route() { @Override public Object handle(Request request, Response response) { // process request String userID = request.params("userName"); if (isValidUser(userID)) { // These two lines work as fix. MultipartConfigElement multipartConfigElement = new MultipartConfigElement("data/tmp"); request.raw().setAttribute("org.eclipse.jetty.multipartConfig", multipartConfigElement); Collection<Part> parts = null; try { parts = request.raw().getParts(); } catch (IOException | ServletException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } for (Part part : parts) { System.out.println("Name:" + part.getName()); System.out.println("Size: " + part.getSize()); System.out.println("Filename:" + part.getSubmittedFileName()); } String fName = null; Part file = null; try { file = request.raw().getPart("fileToBeUploaded"); fName = request.raw().getPart("fileToBeUploaded").getSubmittedFileName(); } catch (IOException | ServletException e1) { e1.printStackTrace(); }