我有这段代码
if(is_writable($destination)){
print "destination is writable";
}
else {
print "destination is not writable";
}
$destination
是一个相对路径,如../subdir/dir/currectDir/
,我检查过,权限是777,但上面的代码返回“目标不可写”,我不明白为什么。有人能帮我吗?感谢
答案 0 :(得分:3)
除了权限之外,目录可能无法写入的原因有很多。其中一些是:
但是,我在这种情况下的猜测是你使用的路径不正确。尝试运行
echo getcwd();
在你的is_writable()调用之前。
它会告诉你PHP脚本运行的当前目录,从那里你应该能够计算出正确的相对路径。如果从命令行运行PHP脚本,它的路径将是当前目录的路径,而不是通过Apache等Web服务器运行,它通常是public_html或httpdocs目录。它可能在早期的脚本执行中也已被更改。
您还可以指定绝对路径(例如/ home / youruser / public_html / subdir / dir / currectDir)
答案 1 :(得分:0)
我无法发表评论,所以我必须在这里回复,但看起来路径(你发布了一条相对路径,顺便说一句绝对路径)是不正确的 - 你试过吗
var_dump(file_exists($destination));
首先,确定您是否在寻找适合您目录的地方?