MultipartConfig实时更改路径

时间:2017-04-03 14:44:50

标签: jetty embedded-jetty jetty-9

我使用MultipartConfig来定义一个特定的URL,我可以在其中存储带有jetty的文件,但是如何根据用户请求更改此值?

例如写入/ tmp / upload / share用户文件。

 @SuppressWarnings("serial")
    @MultipartConfig(location="/tmp/upload", fileSizeThreshold=1024)
    @WebServlet(urlPatterns={"/upload"}, name="upload")
    public class UploadServlet extends HttpServlet {


        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
        {
            resp.setContentType("text/plain");
            PrintWriter out = resp.getWriter();

            int i=0;
            for(Part part: req.getParts())
            {
                part.write(String.format(part.getName(),i++));
            }

        }
    }

使用此代码我更改了文件的名称,但我无法更改文件路径。

1 个答案:

答案 0 :(得分:2)

使用Part.write(String relativeFilename)用于管理这些临时文件(一旦servlet完成其分派,这些文件就会被删除)。

该方法的存在是为了确保内存中的文件写入磁盘。

由您决定将文件从临时位置移动到更永久的位置(例如另一个文件系统位置,数据库,CMS或CDN或存档位置等等)