项目场景:
springBoot项目
问题描述
在进行后台导出数据功能时,报错:java.lang.RuntimeException: java.io.IOException:Permission denied
caused by: java.io.IOException: Permission denied
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createTempFile(File.java:2024)
at org.apache.poi.util.DefaultTempFileCreationStrategy.createTempFile(DefaultTempFileCreationStrategy.java:110)
at org.apache.poi.util.TempFile.createTempFile(TempFile.java:66)
at org.apache.poi.xssf.streaming.SheetDataWriter.createTempFile(SheetDataWriter.java:89)
at org.apache.poi.xssf.streaming.SheetDataWriter.<init>(SheetDataWriter.java:72)
at org.apache.poi.xssf.streaming.SheetDataWriter.<init>(SheetDataWriter.java:77)
at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheetDataWriter(SXSSFWorkbook.java:342)
...
原因分析:
当前启动服务的账号,没有临时文件目录的写入权限,导致了创建临时excel的时候,没有权限。
解决方案:
解决方式(来自百度):
(1)直接使用 chmod -R 777 /tmp/poifiles 将临时文件目录权限设为 777
(2)在服务启动的时候设置临时文件的路径为当前启动服务的账号有权限写入的路径,可以使用 System.setProperty(java.io.tmpdir, “xxxx”) 来设置,也可以在启动时加 -Djava.io.tmpdir=xxxx来设置
╭◜◝ ͡ ◜◝╮
( ˃̶͈◡˂ ̶͈ )感觉有用的话,欢迎点赞评论呀!
╰◟◞ ͜ ◟◞╯
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119851.html