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

我正在使用PHP脚本来保存从Web表单上传的文件。文件上传到临时文件夹,脚本根据Web表单中的其他变量创建文件名和路径,然后脚本使用PHP的move_uploaded_file()将临时文件移动到最终位置。一切正常。简而言之,人们正在上传文件,以便组中的每个人都可以看到它们,并且文件由脚本组织。

我的问题是最终位置的文件具有奇怪的权限。它不会以临时位置或最终位置的权限结束。临时位置和最终位置都具有相同的权限:所有者和管理员的完全权限;读取和读取/执行2个特定的AD安全组。最终文件仅以:所有者和管理员的完全权利结束。因此,虽然管理员和原始上传者在查看文件时没有问题,但是组中的所有其他人都获得“权限被拒绝”。当试图访问它时。

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

有帮助吗?

解决方案

这似乎与 move_uploaded_file()函数有关:
http://us3.php.net/ move_uploaded_file
看一下下面的评论,注意Florian关于copy()的评论 点击 copy()会解决问题吗?:
http://us3.php.net/manual/en/function.copy。 PHP 结果

其他提示

来自move_uploaded_file上的php页面(nb:这对我有用):

对于那些在Windows和IIS上使用PHP的人,你应该设置“upload_tmp_dir”。 php.ini中的值到您的网站目录所在的某个目录,创建该目录,然后为您的网站目录设置相同的权限。否则,当您上传文件并进入C:\ WINDOWS \ Temp,然后将其移动到您的网站目录时,其权限将无法正确设置。如果您希望使用ImageMagick的转换实用程序来操作该文件,则会导致问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top