将文件从/ tmp目录重命名为另一个目标

时间:2014-02-17 13:05:00

标签: php

我尝试使用/tmp函数将位于rename()目录中的临时文件移动到服务器上其他位置的另一个目录。但是我收到了一个错误:

  

许可被拒绝(代码:2)

表示临时文件。如何将临时文件移动到其他位置?如果我检查文件是否存在file_exists(),我就会成功。如果我copy()临时文件,它可以正常工作。

到目前为止,这是我的代码:

 $toPath = '/var/www/htdocs/myproject/some/file.pdf'

 $fileName = 'myfile.pdf';
 $filePath = sys_get_temp_dir() . DIRECTORY_SEPARATOR . $fileName;

 rename($filePath, $toPath); // Permission denied (Code: 2) here

1 个答案:

答案 0 :(得分:1)

这是由于目录上设置的粘位造成的:

drwxrwxrwt。 8 root root 4096 2月6日09:38。

sticky位基本上可以阻止文件的非所有者重命名或删除文件。通常在/ tmp和类似目录上设置该目录,以便多个用户具有写权限和/或将临时文件保存在其中,以防止意外删除。

有关更多信息,请参见:https://www.thegeekstuff.com/2013/02/sticky-bit/