文件输入fileEditInput未在PHP的$_POST中出现的问题咨询
文件上传字段无法获取的问题解决
为什么fileEditInput不在$_POST里?
因为文件类型的输入框数据根本不会存到$_POST数组,PHP专门用$_FILES数组来处理上传的文件。另外,你大概率漏了表单的一个关键属性,导致文件根本没传到服务器。
两步解决问题
给表单加
enctype属性
你的表单标签必须加上enctype="multipart/form-data",否则服务器接收不到文件。写法如下:<form method="POST" action="你的处理脚本路径.php" enctype="multipart/form-data"> <!-- 这里放你原来的inputContainer等表单内容 --> </form>用
$_FILES而非$_POST取文件数据
在PHP处理脚本里,这么写来获取文件信息:// 先检查有没有上传成功 if(isset($_FILES['fileEditInput']) && $_FILES['fileEditInput']['error'] == 0) { // 文件临时存储路径 $tempPath = $_FILES['fileEditInput']['tmp_name']; // 文件名 $fileName = $_FILES['fileEditInput']['name']; // 把文件移到你想存的目录,比如uploads文件夹 move_uploaded_file($tempPath, "uploads/" . $fileName); }
额外提醒
- 检查服务器的PHP配置:确保
php.ini里file_uploads是On,upload_max_filesize和post_max_size的数值足够容纳你要上传的文件。 - 你的
fileEditInput加了hidden类不影响上传,只要用户选了文件,表单提交时就会把文件发出去。
内容的提问来源于stack exchange,提问作者Marijn Hendriks
相关产品推荐
相关产品推荐

