代码
HTML文件:
<!DOCTYPE html>
<html>
<header>
<meta charset="utf-8">
<title>文件上传</title>
</header>
<body>
<form enctype="multipart/form-data" action="upload_file.php" method="post" >
<label for="file">文件名</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="提交">
</form>
</body>
</html>
PHP文件:
<?php
echo json_encode($_POST);
echo json_encode($_FILES)."</br>";
if(empty($_FILES)){
echo "空的";
}else{
if($_FILES["file"]["error"] > 0 ){
echo "错误:".$_FILES["file"]["error"]."</br>";
}else{
echo "上传文件名".$_FILES["file"]["name"]."</br>";
echo "文件类型".$_FILES["file"]["type"]."</br>";
echo "文件大小".($_FILES["file"]["size"]/1024)."KB</br>";
echo "文件临时存储位置".$_FILES["file"]["tmp_name"]."</br>";
}
}
?>
问题:
$_FILES打印出来是空数组。
原因有以下几种:
- form标签没有添加enctype=“multipart/form-data”。
- 修改代码之后没有重新打开浏览页测试。
- php.ini中配置的post_max_size太小,默认是8M,一般不会是这个问题。