java web删除文件,允许Web服务器删除上传的文件,怎么做?

我正在symfony2中实现文件上传 . 我的文件实体归用户所有,代表上传的文件 . 除管理员和所有者外,任何人都无法访问上传的文件 . 为了解决这个问题(除了保护控制器之外),我将它们保存在一个不在/ web /下的目录中 . 我调用了这个目录/ private_files /(并且位于项目的根目录下) .

为了允许Web服务器写入该目录,我运行了这个(我在Mac OS X Mavericks上):

$ sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" private_files/

$ sudo chmod +a "www allow delete,write,append,file_inherit,directory_inherit" private_files/

上传工作正常 . 但是,当尝试通过控制器删除文件时,使用

unlink($path)

我收到错误“警告:取消链接(路径/到/文件):权限被拒绝” .

当我用 ls -al 列出终端上的文件时,我明白了

drwxr-xr-x+ 3 myuser staff 204 Mar 23 11:59 .

drwxr-xr-x 24 myuser staff 816 Mar 21 19:51 ..

-rw-r--r-- 1 _www wheel 7395585 Mar 23 11:59 uploaded_file_1

我注意到上传的文件缺少可执行权限,而“”代表ACL .

使用unlink方法删除这些文件的正确方法是什么?文件是否应该继承ACL(如果是,如何)?或者应该在目录上应用chmod?非常感谢 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值