php - copy,rename和move_uploaded_file之间的差异

时间:2010-10-13 13:13:47

标签: php file-upload upload move file-rename

使用该功能时是否存在差异?我为什么要用一个而不是另一个......

2 个答案:

答案 0 :(得分:42)

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

将来,我建议您自己在PHP Manual查找此类信息。

答案 1 :(得分:8)

我在move_uploaded_file()的手册中找到了这个:

  

Florian S. in H. an der E. [.de] 于2008年8月17日09:02

     

move_uploaded_file(在我的设置中)始终生成文件0600rw- --- ---)并由运行Web服务器的用户(所有者AND组)拥有。   即使该目录的粘性位设置为组权限!   我找不到任何设置来通过php.ini或甚至使用umask()更改此内容。

     

我希望服务器上的常规用户能够tar cjf目录..这对于webserver-process-user完全拥有的文件会失败;   虽然copy(from, to)函数服从粘性位!

所以看起来copyrename的工作略有不同。