我已经使用函数move_uploaded_file
移动已完成的上传。我注意到这不符合目标目录的setgid位,并且具有该文件原来的内容。 (我了解到这是Linux行为)。PHPs move_uploaded_file不尊重setgid
什么是解决问题的好方法?我曾考虑将文件加载到PHP并保存,但文件可能相当大,为50MB +,这意味着更多的PHP内存使用。
我已经使用函数move_uploaded_file
移动已完成的上传。我注意到这不符合目标目录的setgid位,并且具有该文件原来的内容。 (我了解到这是Linux行为)。PHPs move_uploaded_file不尊重setgid
什么是解决问题的好方法?我曾考虑将文件加载到PHP并保存,但文件可能相当大,为50MB +,这意味着更多的PHP内存使用。
您可能会也可能不会访问system
调用,但system("cp")
甚至明确chgrp
可能会做你想做的,只要服从setgid位。如果目标目录不同于目标目录,则可能需要进行一些调查以获取现有组。
我在13年初回到了这个问题,并用copy
替换move_uploaded_file
来修复它。 我并不了解实际的性能和内存影响,但似乎并不相关。
你可以尝试使用'shell_exec'调用shell脚本形式的php来调用移动。如果你想让它成为web服务gid,那么不用mv,而是在shell脚本中做一个'cat',并将它写入一个新文件,然后'解除链接'旧文件。如果你想要一个不同的,你需要做一个'su -',但这可能需要更多的工作。 – 2011-06-03 21:23:26