问题:PHP文件校验,不论有没有上传文件,一直提示“请正确提交文件”,var_dump($_FILES)返回是array(0){},请大神帮忙解决。
<?php
// 只是在表单提交时执行
function add_music(){
// 目标
// 将用户提交过来的数据保存到 storage.json 中
// 步骤
// 1. 接收并校验
// 2. 持久化
// 3. 响应
// 校验文本框
if (empty($_POST['title'])){
$GLOBALS['error_message'] = '请输入标题';
return;
}
if(empty($_POST['artist'])){
$GLOBALS['error_message'] = '请输入歌手';
return;
}
// 校验上传文件
if(empty($_FILES['source'])){
// 客户端提交的表单中没有 source 文件域
$GLOBALS['error_message'] = '请正确提交文件';
return;
}
$source = $_FILES["source"];
var_dump($source);
// 判断用户是否选择了文件
if($source['error'] !== UPLOAD_ERR_OK){
$GLOBAL['error_message'] = '请选择音乐文件';
return;
}
// 音乐文件已经上传成功,但是还在临时目录中
echo "上传成功";
}
if($_SERVER['REQUEST_METHOD'] === 'POST'){
add_music();
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>添加音乐</title>
<link rel="stylesheet" href="bootstrap.min.css">
</head>
<body>
<div class="container py-5">
<h1 class="display-4">添加音乐</h1>
<hr>
<?php if(isset($error_message)): ?>
<div class="alert alert-danger" role="alert">
<?php echo $error_message; ?>
</div>
<?php endif ?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="mulitpart/form-data">
<div class="form-group">
<label for="title">标题</label>
<input type="text" class="form-control" id="title" name="title" >
</div>
<div class="form-group">
<label for="artist">歌手</label>
<input type="text" class="form-control" id="artist" name="artist">
</div>
<div class="form-group">
<label for="source">音乐</label>
<input type="file" class="form-control" id="source" name="source">
</div>
<button class="btn btn-block btn-primary">保存</button>
</form>
</div>
</body>
</html>
PHP文件校验,一直返回异常结果?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- hcqDezhp 2020-12-08 17:31关注
<form action="http://localhost/test.php" method="post" enctype="multipart/form-data">
检查一下,enctype属性写错了
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报