PHPs move_uploaded_file不尊重setgid

时间:2011-06-03 21:13:58

标签: php file-upload

我使用函数move_uploaded_file移动完成的上传。我注意到这不尊重目标目录的setgid位,并且具有该文件最初的含义。 (我了解到这是Linux的行为)。

问题的解决方案是什么?我想过将文件加载到PHP并重新保存,但文件可能非常大50MB +,这意味着PHP的内存使用量会增加。

3 个答案:

答案 0 :(得分:1)

您可能有也可能无法访问system来电,但只要遵守setgid位,system("cp")甚至是明确的chgrp都可能达到您想要的效果。如果现有组从目标目录到目标目录不同,您可能需要进行一些调查以获取现有组。

答案 1 :(得分:0)

尝试使用rename内置的PHP代替move_uploaded_file()。

答案 2 :(得分:0)

我早期已经解决了这个问题&13;并通过将move_uploaded_file替换为copy来修复此问题。 我不知道实际的性能和内存影响,但似乎无关紧要。