博客列表 >文件上传—2018年4月20日15时55分

文件上传—2018年4月20日15时55分

Gee的博客
Gee的博客原创
2018年04月20日 15:58:47624浏览

前端部分:

实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>文件上传</title>
</head>
<body>
	<form action="homework.php" method="post" enctype="multipart/form-data">
		<input type="hidden" name="MAX_FILE_SIZE" value="542488">
		<fieldset>
			<legend align="center">文件上传</legend>
			<p><strong>选择文件:</strong><input type="file" name="upload" id="file"></p>
		</fieldset>
		<p align="center"><button type="submit" name="submit" id="submit">上传</button></p>
		<p align="center" id="alert"></p>
	</form>
</body>
<script type="text/javascript" src="../js/jquery-3.3.1.js"></script>
<script type="text/javascript">
	$('#submit').click(function() {
		// console.log(1);
		// console.log($('#file'));
		var formData = new FormData($('form')[0]);
		formData.append('file',$(':file')[0].files[0]);
		$.ajax({
			url: 'homework.php',
			type: 'POST',
			data: formData,
			contentType: false, // 不可缺
            processData: false, // 不可缺
			success: function(data){
				console.log(data);
				$('#alert span').empty();
				$('#alert').append(data);
			}
		})
		return false;
	})
</script>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

PHP部分:

实例

<?php 
// $_FILES: 它是一个二位数组
// $_FILES['当前上传文件的控件名称,input[name="upload"]']
//        一维部分   二维部分
// $_FILES['upload']['name']:文件原始名称
// $_FILES['upload']['type']:文件类型
// $_FILES['upload']['size']:文件大小
// $_FILES['upload']['tmp_name']:服务器上的临时文件夹
// $_FILES['upload']['error']:错误代码

if($_SERVER['REQUEST_METHOD'] == 'POST') {
	//1.检测是否有文件被上传
	if (isset($_FILES['upload'])){
		// 2.设置一下允许上传的文件类型
		$allow = ['image/jpg', 'image/jpeg', 'image/png'];
		// 判断用户上传的文件类型是否正确
		if (in_array($_FILES['upload']['type'], $allow)) {
			//将用户文件上传到指定的临时目录:move_uploaded_file()
			if (move_uploaded_file($_FILES['upload']['tmp_name'], "upload/{$_FILES['upload']['name']}")) {
				//上传成功
				echo '<span>上传成功</span>';
				// echo '<script>alert(1234)</script>';
			}

		} else {
			echo '<span>仅允许上传jpg或png格式的图片</span>';
		}
	}
	//如果上传失败,返回代码都是大于0的
	if ($_FILES['upload']['error'] > 0) {
		echo '<p>错误的原因是:<strong>';
		switch ($_FILES['upload']['error']) {
			case '1':
				echo '文件超过了php.ini中的大小';
				break;

			case '2':
				echo '文件超过了表单中设置的大小';
				break;

			case '3':
				echo '文件只有一部分上传了';
				break;

			case '4':
				echo '没有文件被上传';
				break;
			//没有第五种
			case '6':
				echo '临时文件夹没有';
				break;
			//没有第七种
			case '8':
				echo '上传意外终止';
				break;

			default:
				echo '未知错误';
				break;
		}

		echo '</strong></p>';
		//保险起见,最好手工把临时目录下面的文件情况,系统也会在会话结束的时候情况
		if (file_exists($upFile['tmp_name']) && is_file($upFile['tmp_name'])){
			unclick($upFile['tmp_name']);
		}
	}
}
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

效果图:

搜狗截图20180420155818.png

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议