我尝试使用/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
答案 0 :(得分:1)
这是由于目录上设置的粘位造成的:
drwxrwxrwt。 8 root root 4096 2月6日09:38。
sticky位基本上可以阻止文件的非所有者重命名或删除文件。通常在/ tmp和类似目录上设置该目录,以便多个用户具有写权限和/或将临时文件保存在其中,以防止意外删除。