Chmod、PHP和图片上传

6

如何使用PHP处理图片上传?

如何处理chmod设置?

例子:

我有一个名为/image/的目录,我想上传所有的图片到这个目录中。

我应该将此目录设置为chmod 777并保持不变吗?还是每次需要上传图片时都应该通过PHP更改该文件夹上的chmod。这样做正确吗?或者我应该做些其他的事情?

5个回答

4
如phpdeveloper所提到的,设置一次chmod就足够了。在该目录中进行的所有后续写操作都不会更改目录权限,除非您在其他地方明确将其chmod为另一个权限。
*nix服务器上目录的推荐权限为755。不建议将权限设置为777。正如wic所提到的,这会给访问您的服务器的每个人完全的权限。如果您在共享主机上或与其他用户共享服务器,则会使其易受攻击。
还要注意PHP在服务器上的运行方式。实际上,如果您将PHP作为cgi(例如suphp)运行,则不允许将目录的权限设置为777。在脚本所在的目录中具有777权限将无法运行,而在尝试执行它们时会导致“500内部服务器错误”。

2
我建议将chmod设置为755。

1

只有运行 Web 服务器守护进程的用户需要对目录进行写入权限。而您肯定不希望上传文件的用户对目录具有执行权限。


我假设你在使用 PHP 来开发网站,如果是脚本编写的话请忽略此信息。 - rerun

1
通常,文件夹设置只需要设置一次就可以了。如果您已经将其设置为777,则通过PHP不断设置文件夹权限为777是毫无意义的。

那么将目录的chmod设置为777是没有问题的吗?(对于下面所有答案都适用) - lejahmie
有时我也会通过ftp上传图片,这样上传的“所有者”会不会与通过php上传时不同? - lejahmie

1

不,您不必每次更改目录权限。一旦设置,它们就被固定。

使用777是过度的,因为它会给予所有人完全权限。去掉“x”位,让Apache(或其他人)拥有该目录。这使得无法列出文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接