博主信息
博文 44
粉丝 0
评论 1
访问量 37848
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
4月19日——文件上传
时光记忆的博客
原创
834人浏览过

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();
	}
	

?>

运行实例 »

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


批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学