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 数据接收和更新和代码的修改建议
  • ¥15 Mapreduce是正常的,在运行其他jar包时并没有任何问题,只是在做LogCount.jar 时出的问题。如图所示
  • ¥15 关于#C语言#的问题,请各位专家解答!(语言-c语言)
  • ¥15 ImportError: DLL load failed while importing _iterative: 找不到指定的模块。
  • ¥15 如何通过交互分析得出某高危患者对放疗获益更多
  • ¥15 相关性分析中,p<0.05, r=0.29,怎么评价相关性呢
  • ¥15 docker部署Mongodb后输入命令报错?
  • ¥15 将下列流程图转变成python程序代码
  • ¥15 我需要全国每个城市的最新小区名字等数据。
  • ¥15 开发一个小区生态的小程序