Uploaded image for project: 'SAStruts'
  1. SAStruts
  2. SASTRUTS-128

commons-fileupload 1.2.1 のFileCleanerCleanupへの対応

XMLWordPrintable

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major Major
    • None
    • Affects Version/s: 1.0.4-sp8
    • Component/s: SAStruts
    • None

      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に依存するコードなため)。

      参考
      http://commons.apache.org/fileupload/using.html#Resource%20cleanup

            Assignee:
            higa higa
            Reporter:
            shinsuke shinsuke
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: