POI 臨時文件夾“poifiles”問題


問題:

    POI 生成文件時會根據“java.io.tmpdir”配置自動生成 {java.io.tmpdir}/poifiles/,Linux上是生成到 /tmp/poifiles。但是第一次訪問時,poi會創建poifiles文件夾,如果是非root用戶申請的,那么其他的非root用戶就沒有權限訪問了。這就會造成POI生成臨時文件失敗。

解決:

  方法一(不推薦):

    修改“java.io.tmpdir”對應的目錄,在linux上,java.io.tmpdir對應的目錄是/tmp,所以修改啟動參數,將“java.io.tmpdir”改為指定的目錄。但是這會造成該項目下所有的臨時文件路徑被修改

       方法二:

              在程序啟動時設置一次

        //修改poi臨時文件路徑
        File dir = new File(System.getProperty("java.io.tmpdir") , "test/poi");
        FileUtils.forceMkdir(dir);
        TempFile.setTempFileCreationStrategy(new DefaultTempFileCreationStrategy(dir));
注意
兩種方式同時存在時,以方式二執行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM