将文件上传到PHP服务器后权限不佳

时间:2011-11-13 00:12:56

标签: php

我正在通过POST上传到此页面的文件上运行以下代码。

$newname = "images/".$name.".".pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION);   

//Copy the file from its temporary location to its real location.
if (file_exists("images/".$name))
    throw new Exception("images/".$name." already exists.");

move_uploaded_file($_FILES["file"]["tmp_name"], $newname);
echo "Stored in: ".$newname."<BR />";

该文件显示在Web服务器上的正确位置,并且大小正确。当我尝试查看它时虽然它说“......你没有正确的权限来访问文件位置。”

我在Windows 7上运行在本地Apache Web服务器上测试它,并且该站点的所有文件都在同一个文件夹中(除了上传的图像保存在该文件夹中的/ images文件夹中,但我切换了来回,它没有帮助)。

我做错了什么以及如何停止此权限问题以便我可以在上传后立即查看文件?

修改

如果我将权限提交给管理员并为该文件提供为普通用户设置的权限,则可以访问该文件。

我已尝试按照以下答案中的建议使用chmod,以便在上传文件后更改所有用户的权限,但这似乎不起作用。

这不是一个巨大的问题,因为Web服务器仍然可以使用我真正需要的图像 - 但我希望能够在没有管理员权限的情况下查看它们,以简化我的测试环境。因此,非常感谢任何进一步的建议:)

1 个答案:

答案 0 :(得分:1)

尝试跑步:

echo(fileperms($newname));

在上传文件之后获取文件chmod设置的八进制值,例如0755

如果设置得太低,您可以使用:

chmod($newname, 0755); 

将它们设置为允许您查看它们的内容。