15

当我使用这些功能时有区别吗?为什么我要使用一个而不是另一个...

4

2 回答 2

45
  • copy()复制文件 - 您现在有 2 个文件,对于大文件,这可能需要很长时间
  • rename()更改文件的名称,这可能意味着在目录之间移动它。
  • move_uploaded_file()与 基本相同rename(),但它只适用于通过 PHP 的上传机制上传的文件。这是一项安全功能,可防止用户欺骗您的脚本向他们显示与安全相关的数据。

以后,我建议您自己在PHP 手册中查找此类信息。

于 2010-10-13T13:21:29.133 回答
10

我在以下手册中找到了这一点move_uploaded_file()

Florian S. 在 H. an der E. [.de]在 17-Aug-2008 09:02

move_uploaded_file(在我的设置中)总是生成文件0600rw- --- ---)并由运行网络服务器的用户(所有者和组)拥有。即使该目录对组权限设置了一个粘性位!我找不到任何设置来通过 php.ini 甚至使用umask().

我希望服务器上的普通用户能够访问tar cjf目录 .. 这将在完全由 webserver-process-user 拥有的文件上失败;该copy(from, to)功能虽然服从粘性位!

所以看起来copyrename做一个稍微不同的工作。

于 2010-10-13T13:23:44.293 回答