由PHP修改的文件的奇怪权限move_uploaded_file()

我在Windows Server 2003 Enterprise框上运行PHP 5.2.6。 IIS设置为拒绝匿名访问并使用集成Windows身份validation。

我正在使用PHP脚本来保存从Web表单上传的文件。 该文件被上传到一个临时文件夹,该脚本根据Web表单中的其他variables创build文件名和path,然后该脚本使用PHP的move_uploaded_file()将该临时文件移动到最终位置。 所有的工作正常。 简而言之,人们正在上传文件,因此群组中的每个人都可以看到他们,文件按脚本进行组织。

我的问题是,在最后的位置文件有奇怪的权限。 它不会以临时位置或最终位置的权限结束。 临时地点和最终地点都具有相同的权限:所有者和主pipe部门的完全权利; 读取和读取/执行2个特定的AD安全组。 最终文件只有:所有者和pipe理部门的完整权利。 所以当pipe理员和原始的上传者查看文件没有问题的时候,组中的所有其他人在访问时都会得到“权限被拒绝”的权限。

任何想法或build议将不胜感激! 谢谢!

这似乎是move_uploaded_file()函数的一个问题:
http://us3.php.net/ move_uploaded_file
看看下面的评论,注意Florian对copy()的评论。

将复制()解决问题?
http://us3.php.net/manual/en/function.copy.php

从move_uploaded_file上的php页面(nb:这工作对我来说):

对于那些在Windows和IIS上使用PHP的人,你应该把php.ini中的“upload_tmp_dir”值设置为你的网站目录所在的某个目录,创建该目录,然后为它设置相同的权限目录。 否则,当你上传一个文件并进入C:\ WINDOWS \ Temp,然后将其移动到你的网站目录时,其权限将不会被正确设置。 如果你想用ImageMagick的convert工具来处理这个文件,这会导致你的问题。