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

commons-fileupload 1.2.1 のFileCleanerCleanupへの対応

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.0.4-sp8
    • Fix Version/s: None
    • Component/s: SAStruts
    • 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に依存するコードなため)。

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

        Attachments

          Activity

            People

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

              Dates

              • Created:
                Updated:
                Resolved: