[SASTRUTS-128] commons-fileupload 1.2.1 のFileCleanerCleanupへの対応 Created: 2010-09-08 Updated: 2010-09-08 Resolved: 2010-09-08 |
|
Status: | Resolved |
Project: | SAStruts |
Component/s: | SAStruts |
Affects Version/s: | 1.0.4-sp8 |
Fix Version/s: | None |
Type: | Improvement | Priority: | Major |
Reporter: | shinsuke | Assignee: | higa |
Resolution: | Fixed | Votes: | 0 |
Labels: | None |
Description |
commons-fileupload 1.2 と 1.2.1 でアップロード時にできた場合の添付ファイルの扱いが変更されています。commons-fileupload 1.2.1 においてアップロードファイルを削除対象にするには、 S2MultipartRequestHandler で FileCleaningTracker を DiskFileItemFactory にセットする必要があるようです。 @@ -78,9 +80,12 @@ throws ServletException { ModuleConfig ac = (ModuleConfig) request .getAttribute(Globals.MODULE_KEY); - ServletFileUpload upload = new ServletFileUpload( - new DiskFileItemFactory((int) getSizeThreshold(ac), new File( - getRepositoryPath(ac)))); + FileCleaningTracker fileCleaningTracker = FileCleanerCleanup + .getFileCleaningTracker(ServletContextUtil.getServletContext()); + DiskFileItemFactory fileItemFactory = new DiskFileItemFactory( + (int) getSizeThreshold(ac), new File(getRepositoryPath(ac))); + fileItemFactory.setFileCleaningTracker(fileCleaningTracker); + ServletFileUpload upload = new ServletFileUpload(fileItemFactory); upload.setHeaderEncoding(request.getCharacterEncoding()); upload.setSizeMax(getSizeMax(ac)); elementsText = new Hashtable(); ただ、SAStrutsのSVNを見ても .classpash は 1.2 を参照し、pom.xml は 1.2.1 を参照したりという状況なので、1.2 を使われているウェブアプリプロジェクトもあるかと思うので、上記の変更を入れたら SAStrutsと共に commons-fileupload も変更してもらうような注意が必要なるかと思います(1.2.1に依存するコードなため)。 参考 |
Comments |
Comment by higa [ 2010-09-08 ] |
pom.xmlのcommons-fileuploadのバージョンを1.2に変更しました |
Comment by shinsuke [ 2010-09-08 ] |
特に上げなければならないという理由はありません。SAStruts の pom.xml が 1.2.1 を参照しています。SAStruts として 1.2 を利用するというのであれば、pom.xml の依存関係を修正する感じに、この課題を変更していただければと思います。 |
Comment by higa [ 2010-09-08 ] |
SAStrutsではStruts1.2.9にあわせて、commons-fileupload 1.2を使っていますが1.2.1に上げる理由は何ですか? |