You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP文件上传功能报错:move_uploaded_file找不到目录问题求助

解决PHP文件上传的"Failed to open stream"错误

错误原因

从报错路径能看出,你的upload.php文件位于C:\xampp\htdocs\resume\uploads\目录下,而代码里设置的$target_dir = "uploads/"会让程序尝试把文件保存到C:\xampp\htdocs\resume\uploads\uploads\——这个子目录不存在,所以move_uploaded_file无法写入文件,触发报错。

解决方案

方案1:修正目标目录路径

如果你的需求是把文件上传到upload.php所在的uploads目录,直接修改$target_dir的值为当前目录:

$target_dir = "./";

或者直接省略目录前缀,拼出目标文件路径:

$target_file = basename($_FILES["fileToUpload"]["name"]);

方案2:自动创建目标目录(若需要子目录)

如果你确实要把文件上传到当前脚本目录下的uploads子文件夹,在代码开头添加目录检查与创建逻辑,确保目录存在且有写入权限:

$target_dir = "uploads/";
// 检查目录是否存在,不存在则创建
if (!is_dir($target_dir)) {
    mkdir($target_dir, 0755, true); // 0755是通用目录权限,true表示递归创建父目录
}
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);

额外检查:目录权限

确保XAMPP运行的用户(Windows环境下通常是Authenticated Users)对目标目录有写入权限。右键目标文件夹→属性→安全,给对应用户添加写入权限即可。

验证修改

修改后重新上传文件,程序应该能正常将临时文件移动到目标目录,不再出现路径不存在的错误。

内容的提问来源于stack exchange,提问作者Shani Kotadiya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 12:55:23