前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

POI 临时文件夹“poifiles”问题

qiguaw 2024-12-11 16:32:01 资源文章 24 ℃ 0 评论

问题:

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));

注意:

两种方式同时存在时,以方式二执行


摘自博客:

https://www.cnblogs.com/jiehanshi/p/14991671.html

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表