项目场景
某现场由于安全要求较高,要求服务器不能保存人员照片,在提取照片特征值保存之后,需要把照片删掉
问题描述
在本地测试中使用file.delete()方法可以正常删除文件,但是部署到现场后发现使用代码无法删除文件,但是在文件夹中可以正常手动删除该文件。
@Override
public void run() {
boolean delete = file.delete();
if (delete){
log.info("删除照片-删除成功:{} ",path);
}else {
log.info("删除照片-删除失败:{} ",path);
}
}
原因分析:
由于代码无法删除,但是在文件夹中可以正常删除,所以应该不是照片资源被占用了(如果文件夹中无法正常删除,可排查代码中是否有未关闭的流),初步分析是服务没有删除文件的权限。
解决方案:
修改tomcat服务器为本地账户,并允许与桌面交互