我在Windows Server 2003 Enterprise框上运行PHP 5.2.6.IIS设置为拒绝匿名访问并使用集成Windows身份验证.
我正在使用PHP脚本来保存从Web表单上传的文件.文件上传到临时文件夹,脚本根据Web表单中的其他变量创建文件名和路径,然后脚本使用PHP的move_uploaded_file()将临时文件移动到最终位置.一切正常.简而言之,人们正在上传文件,以便组中的每个人都可以看到它们,并且文件由脚本组织.
我的问题是最终位置的文件具有奇怪的权限.它不会以临时位置或最终位置的权限结束.临时位置和最终位置都具有相同的权限:所有者和管理员的完全权限; 读取和读取/执行2个特定的AD安全组.最终文件仅以:所有者和管理员的完全权利结束.因此,虽然管理员和原始上传者在查看文件时没有问题,但组中的所有其他人在尝试访问时都会获得"权限被拒绝".
任何想法或建议将不胜感激!谢谢!
来自move_uploaded_file上的php页面(nb:这对我有用):
对于那些在Windows和IIS上使用PHP的人,你应该将php.ini中的"upload_tmp_dir"值设置到你的网站目录所在的某个目录,创建该目录,然后为你的网站设置相同的权限.目录.否则,当您上传文件并进入C:\ WINDOWS\Temp,然后将其移动到您的网站目录时,其权限将无法正确设置.如果您想要使用ImageMagick的转换实用程序来操作该文件,这将导致您遇到问题.