2016-11-29 13 views
0

Я пытаюсь сделать способ загрузки файлов с использованием фреймворка искры и freemarker, но я, кажется, ударяю кирпичную стену методом .getPart. Мой текущий код FreeMarker выглядит следующим образом:Загрузить файл с использованием Spark framework и 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

Оказывается, это работает, если я Твик строку кода:

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

к

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