2017-04-03 85 views
1

我正在使用MultipartConfig來定義特定的URL,我可以用jetty存儲文件,但是如何根據用戶請求更改此值?MultipartConfig實時更改路徑

例如寫入/ tmp /上傳/共享用戶文件。

@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++)); 
      } 

     } 
    } 

使用此代碼我更改文件的名稱,但我無法更改文件路徑。

+0

目標是將request.part寫入任意目錄和文件名? –

回答

2

使用的Part.write(String relativeFilename)是爲那些臨時文件的管理(一旦該servlet完成其調度,這些文件被刪除)。

該方法確保將內存中的文件寫入磁盤。

它由你來出從臨時位置將文件移動到一個更穩定的位置(比如另一個文件系統中的位置,或數據庫,或CMS或CDN,或存檔位置,等...)

+0

我測試過,文件沒有被刪除...我想他們被髮送到文件系統中的一個特定路徑,而不是直接刪除 – JMR

+0

Basicaly如何以線程方式更改文件...也可以是一個答案我的問題 – JMR