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

PHP文件不存在错误:move_uploaded_file执行失败求助

解决move_uploaded_file报错:No such file or directory的问题

先看看你遇到的报错信息:

Warning: move_uploaded_file(C:\mpp\htdocs\ch09\data2018_03_22_11_38_23_0.gif): failed to open stream: No such file or directory in C:\xampp\htdocs\ch09\concert\insert.php on line 101
Warning: move_uploaded_file(): Unable to move 'C:\xampp\tmp\phpE1D0.tmp' to 'C:\mpp\htdocs\ch09\data2018_03_22_11_38_23_0.gif' in C:\xampp\htdocs\ch09\concert\insert.php on line 101

你提到配置的上传目录是$upload_dir = "C:\xampp\htdocs\ch09\data";,但报错里的目标路径却变成了C:\mpp\htdocs\...——核心问题出在PHP对双引号字符串的转义解析上:

在双引号包裹的字符串中,\x会被PHP当作十六进制转义序列处理,\xa对应的是ASCII换行符(字符码10),所以C:\xampp会被错误解析成C:\mpp(\xa被解析成换行符后消失,剩下的mpp直接拼接在C:\后面),这就导致程序找不到正确的上传目录。

给你三个简单有效的解决方法:

  • 用单引号包裹路径
    单引号字符串在PHP中不会解析任何转义字符,直接原样输出内容,修改后代码如下:

    $upload_dir = 'C:\xampp\htdocs\ch09\data';
    
  • 双引号下使用双反斜杠转义
    如果一定要用双引号,把路径里的每个反斜杠都改成两个反斜杠,让PHP识别为普通的路径分隔符:

    $upload_dir = "C:\\xampp\\htdocs\\ch09\\data";
    
  • 改用正斜杠作为路径分隔符
    PHP在Windows系统下完全支持正斜杠作为路径分隔符,这样就彻底避免了转义问题,写法更简洁:

    $upload_dir = "C:/xampp/htdocs/ch09/data";
    

修改完成后,可以先通过echo $upload_dir;输出路径,确认显示的是正确的C:\xampp\htdocs\ch09\data(或对应的正斜杠版本),再测试上传功能,应该就能解决这个报错了。

内容的提问来源于stack exchange,提问作者Seo woo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:14:34