首先:我已经搜索了这个,但所有答案似乎都是'你确定路径存在吗?'或者“路径是否获得了正确的权限?” - 我100%肯定他们这样做,尤其是因为同一文件中的代码的不同部分设法写入指定目录。
那么:为什么这个非常简单的PHP不能正常工作?
copy("/var/www/html/log16-1/0049_2016_07_27_08_00_08.mp3", "~/temp/xra231y.mp3");
导致错误:
copy(~/temp/xra231y.mp3): failed to open stream: No such file or directory
我再说一遍:路径确实存在,它确实具有正确的写入权限(此脚本是从CLI加载的),同一文件中另一部分代码设法写入此目录,完全没有问题(分开)从速度,但然后它再次加入MP3文件!)。
我甚至尝试使用不同的引号(我倾向于使用单引号而不是通常使用单引号),因为我知道如果这会产生问题,它们会略有不同,但无济于事。
答案 0 :(得分:0)
尝试使用/home//temp/xra231y.mp3,因为php不会自动扩展路径中的“〜”。如果您需要为普通用户扩展代字号,请使用以下内容:
function expand_tilde($path)
{
if (function_exists('posix_getuid') && strpos($path, '~') !== false) {
$info = posix_getpwuid(posix_getuid());
$path = str_replace('~', $info['dir'], $path);
}
return $path;
}
(source)