2016-11-29 36 views
0

我想使用spark框架和freemarker上傳文件的方法,但我似乎在.getPart方法中打磚牆。我目前的freemarker的代碼如下:使用Spark框架和FreeMarker上傳文件

<form method='post' enctype='multipart/form-data'> 
    <div> 
     <input type='file' name='uploadedFile'> 
     <button>Upload csv</button> 
    </div> 
</form> 

和我的火花後的Java方法的代碼如下所示:

post(new Route("/pdf", "multipart/form-data") { 
     @Override 
     public Object handle(Request request, Response response) { 
      String name = null; 


      File upLoadM = new File("messages/"); 

      Path tempFile = null; 
      Part file = null; 

      try { 
       tempFile = Files.createTempFile(upLoadM.toPath(), "", ""); 
        System.out.println(tempFile); 
      } 
      catch (IOException e1) { 
       e1.printStackTrace(); 
      } 


      request.attribute("org.eclipse.jetty.multipartConfig", new MultipartConfigElement("/temp")); 

      try { 
       file = request.raw().getPart("uploadedFile"); 
       System.out.println(file); 
      } 
      catch (IOException | ServletException e1) { 
       e1.printStackTrace(); 
      } 

      try (InputStream input = file.getInputStream()) { 
       Files.copy(input, tempFile, StandardCopyOption.REPLACE_EXISTING); 
      } 
      catch (IOException e) { 
       e.printStackTrace(); 
      } 


      response.status(201); 
      response.redirect("/pdf"); 
      return ""; 
     } 
    }); 

當我打的上傳按鈕,我得到一個500內部錯誤。不知道它在.getPart方法崩潰的原因是什麼。任何幫助,將不勝感激。

回答

0

原來這是工作,如果我tweek的代碼行:

request.attribute("org.eclipse.jetty.multipartConfig", new MultipartConfigElement("/temp")); 

request.attribute("org.eclipse.multipartConfig", new MultipartConfigElement("/temp")); 
相關問題