PHP7.1.4(Ionic2后端)FTP服务器创建目录位置不符问题求助
解决PHP脚本创建文件夹路径错误的问题
嘿,我来帮你搞定这个文件夹路径跑偏的问题!核心原因其实是PHP里的相对路径容易“找错家”——它默认基于当前工作目录,而不是你脚本所在的目录,这也是很多开发者踩过的坑。
第一步:先搞清楚脚本的真实位置
先在你的directory.php里加几行代码,确认脚本所在的绝对路径,这样咱们就有了准确的基准:
// 打印当前脚本文件的完整路径 echo "脚本路径:" . __FILE__ . "<br>"; // 打印脚本所在的目录(PHP 5.3+支持,PHP7完全兼容) echo "脚本所在目录:" . __DIR__ . "<br>";
运行后你会看到__DIR__输出的就是你要的home/user/public_html/folder/php/uploads/,这就是咱们的目标基准目录。
第二步:用绝对路径创建images文件夹
直接用__DIR__拼接目标路径,这样就不会再跑偏了,替换你原来的创建代码:
// 拼接出uploads目录下images文件夹的绝对路径 $targetFolder = __DIR__ . '/images'; // 先检查文件夹是否已经存在,避免重复创建的提示误导 if (!is_dir($targetFolder)) { // mkdir第三个参数设为true,支持递归创建(这里虽然不需要,但留着更稳妥) if (mkdir($targetFolder, 0755, true)) { echo "Successfully created images"; } else { echo "Failed to create images folder"; // 打印错误信息方便排查问题 echo "Error: " . error_get_last()['message']; } } else { echo "Images folder already exists"; }
为什么之前会跑偏?
你之前的代码应该是用了相对路径(比如mkdir('images')),这时候PHP会基于Web服务器的当前工作目录来创建文件夹,而这个目录不一定是你脚本所在的uploads目录。比如如果服务器的工作目录是home/user/public_html/folder/php/,那相对路径就会把images创建到php目录下,而不是uploads里——这就是你遇到的问题根源。
额外提醒
- 权限要到位:确保Web服务器的运行用户(比如www-data)对uploads目录有写权限,
0755的权限设置一般是合适的,既保证安全又能正常读写。 - 别依赖
getcwd():这个函数返回的是当前工作目录,会随着执行环境变化而改变,远不如__DIR__可靠。
内容的提问来源于stack exchange,提问作者user8667024
相关产品推荐
相关产品推荐

