Blogger Information
Blog 44
fans 0
comment 1
visits 31058
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
4月19日——文件上传
时光记忆的博客
Original
685 people have browsed it

HTML文件:demo6.html

实例

<!-- 
	1.文件上传的请求类型必须是POST
	2.允许的数据类型必须是:multipart/form-data

	如果想在当前页面处理上传的话,action可能会有三种写法
	1.最懒的方法,空:默认当前脚本
	2.使用当前文件名:demo6.php
	3.最酷的方法:
 -->
<!-- <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>" method="post" enctype="multipart/form-data"> -->

<form id="upload" action="demo7.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"></p>
	</fieldset>
	<p align="center"><button type="button" name="submit">上传</button></p>
</form>

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	
</body>
</html>
<script src="../js/jquery-3.3.1.js"></script>
<script>
	$('button:first').on('click', function(){
		// alert('aaa')
		var upload = new FormData($("#upload")[0]);
		$.ajax({
			url:'demo7.php',
			type:'POST',
			cache: false,
			dataType:'json',
			data:upload,
          // 下面三个参数要指定,如果不指定,会报一个JQuery的错误 
      cache: false,  
            contentType: false,  
            processData: false,  
			success:function($res){
				if($res.status == 1){
					alert($res.message)
				}
				else{
					alert($res.message)
				}
			}
		})
	})
</script>

运行实例 »

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

php文件:demo7.php

实例

<?php

	// echo '<pre>'
	// print_r($_FILES['upload']);

	// $_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'){
		 // echo 100;
		//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 json_encode(array('status'=>1, 'message'=>'上传成功'));
					exit();
		    	}
		    }else{
		    	echo json_encode(array('status'=>1, 'message'=>'仅允许上传jpeg/jpg/png格式的图片'));
					exit();
		    }
		}else{
			echo json_encode(array('status'=>1, 'message'=>'没有文件上传/未知错误'));
			exit();
		}
		
		/*//如果上传失败
		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>';
			// //保险起见,最好手工把临时目录下面的文件清空,系统也会在会话结束的时候被清空
			// ig(file_exists($_FILES['upload']['tmp_name']))
		}*/
	}else{
		echo json_encode(array('status'=>1, 'message'=>'上传类型错误'));
		exit();
	}
	

?>

运行实例 »

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


Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post