wenkebilly 2020-12-08 10:55 采纳率: 80%
浏览 12
已采纳

PHP文件校验,一直返回异常结果?

问题: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>
  • 写回答

2条回答 默认 最新

  • hcqDezhp 2020-12-08 17:31
    关注

    <form action="http://localhost/test.php" method="post" enctype="multipart/form-data">

    检查一下,enctype属性写错了

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

报告相同问题?

悬赏问题

  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式