PHP文件上传报404错误求助:请求的URL在服务器上未找到
解决文件上传表单404 Not Found问题
别担心,新手刚接触PHP遇到这种问题太正常啦!咱们一步步来排查解决:
核心问题:404的原因
你点击提交后出现404,是因为服务器找不到你表单action属性里指定的upload.php文件,大概率是下面几种情况之一:
- 你还没创建
upload.php文件:你的HTML表单已经写了,但处理上传的PHP脚本还没做,服务器当然找不到啦! - 文件位置不对:
upload.php必须和你的HTML页面(比如index.html)在同一个文件夹里,不然要写对相对路径(比如你的HTML在html文件夹里,PHP在根目录,那action="../upload.php")。 - 文件名拼写错误:比如把
upload.php写成了uplaod.php或者upload.html,大小写也要注意(Linux服务器区分大小写)。
快速解决步骤
- 先创建
upload.php文件:把下面的基础代码复制进去,放在和你的HTML页面同一个目录下:
<?php // 检查是否是POST请求且有文件上传 if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['myfile'])) { // 定义上传文件保存的目录,先手动创建这个uploads文件夹! $uploadDir = './uploads/'; // 拼接最终保存的文件路径 $targetFile = $uploadDir . basename($_FILES['myfile']['name']); // 尝试移动上传的临时文件到目标目录 if (move_uploaded_file($_FILES['myfile']['tmp_name'], $targetFile)) { echo "文件 " . htmlspecialchars(basename($_FILES['myfile']['name'])) . " 上传成功!"; } else { echo "上传失败,请检查uploads文件夹的写入权限或者文件大小限制。"; } } else { echo "没有接收到有效的上传请求。"; } ?>
创建uploads文件夹:在和HTML、PHP文件同一个目录下,新建一个名为
uploads的文件夹,并且确保服务器对这个文件夹有写入权限(Windows右键文件夹→属性→安全里设置权限;Linux终端执行chmod 755 uploads)。检查服务器状态:确保你的本地服务器(比如XAMPP、WAMP)已经正常启动,并且你的项目文件夹放在服务器的根目录里(比如XAMPP的
htdocs文件夹)。
额外提醒
测试的时候,访问HTML页面要用服务器的地址,比如http://localhost/你的文件夹名/index.html,不要直接双击打开本地HTML文件(那样会用file://协议,没法触发PHP脚本)。
内容的提问来源于stack exchange,提问作者user9740954
相关产品推荐
相关产品推荐

