使用 Spark 框架和 FreeMarker 上传文件

Upload file using Spark framework and FreeMarker

我正在尝试制作一种使用 spark 框架和 freemarker 上传文件的方法,但我似乎在 .getPart 方法上遇到了障碍。我当前的 freemarker 代码如下所示:

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

我的 spark java post 方法代码如下所示:

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 方法中崩溃的原因是什么。任何帮助将不胜感激。

事实证明,如果我调整代码行,它就可以工作:

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

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