博客列表 >第七章:文件上传的原理与实现

第七章:文件上传的原理与实现

黄忠倚的博客
黄忠倚的博客原创
2018年04月26日 18:27:111021浏览

实例

<!-- 
1.文件上传的请求类型必须是POST
2.允许的数据类型必须是:multipart/form-data
 -->
<!--  如果想在当前的页面处理上传的话,action可能会有一种写法:
 a.最懒的方式:空,默认为当前脚本
 b.最死的方法:当前脚本名
 c.最酷的方法: -->

<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>" method="post" enctype="multipart/form-data">
	
	<input type="hidden" name="MAX_FILE_SIZE" value="542488">
	<fieldset>
	<legend align="center">文件上传</legend>
	<p><strong>选择文件:<input type="file" name="upload"></strong></p>
	</fieldset>
	<p align="center"><button type="submit" name="submit">上传</button></p>
	
</form>

<!-- <?php 
//echo '<pre>';
//pint_r($FILES['upload']['tmp_name']);
//?> -->

<!-- 
//$_FILES:它是一个二维数组
//$_FILES:['当前上传文件的控件名称,input[name="upload"]']

//$_FILES:['upload']['name']:文件原始名称
//$_FILES:['upload']['type']:文件类型
//$_FILES:['uplode']['size']:文件大小
//$_FILES:['upload']['tmp_name']:服务器上的临时文件件 -->

<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {  //注意此处的#_SERVER
	//1.检测是否有文件被上传
	if (isset($_FILES['upload'])) {
		//2.设置一下允许上传的类型
		$allow = ['image/jpg','image/jpeg','image/png'];  //判断用户文件上传到指定的临时目录:move_
		if (in_array($_FILES['upload']['type'],$allow)) {
			//将用户文件上传到指定的临时目录:move_uploaded_file()
			if (move_uploaded_file($_FILES['upload']['tmp_name'], "upload/{$_FILES['upload']['name']}")) {
			//上传成功
			echo '<script>alert(\'上传成功\')</script>';
			}  //注意此处的是否有完成的括号
		} else {
			echo '<script>alert(\'仅允许上传jpg或png格式的图片\')</script>';
				}  //注意此处的是否有完成的括号
		}


			//如果上传失败
			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;
				}
				

			}
	}
?>

运行实例 »

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


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