wenkebilly 2020-12-06 19:35 采纳率: 80%
浏览 20
已采纳

PHP文件校验的疑惑:不管有没有上传文件,点保存时一直提示“请正确提交文件”

<?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>
  • 写回答

4条回答 默认 最新

  • xiaoxiao_2020 2020-12-08 19:36
    关注

    mulitpart写错了  正确得是multipart

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题