2016-11-29 96 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")); 
相关问题