博客列表 >文件上传的完整实现过程-2018年4月19日

文件上传的完整实现过程-2018年4月19日

笨鸟先飞
笨鸟先飞原创
2018年04月22日 17:03:37616浏览

代码:

实例

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

如果想在当前页面处理上传的话,action可能会有三种写法:
1.最懒的方式就是:空  ,默认当前脚本
2.最死的方式:当前脚本名
3.最酷的方式:下 -->

<style type="text/css">
	form{
		width: 60%;
		/*height: 200px;*/
		margin: auto;
		background-color: lightpink;
	}

	input{
		margin-left: 30px;
	}
</style>
<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>选择文件:</strong><input type="file" name="upload" id="file"></p>
	</fieldset>
	<p align="center"><button type="submit" name="submit">上传</button></p>
</form>
<?php
// $_FILES:它是一个二维数组
// $_FILES['当前上传文件的控件名称:input[name="upload"]']//一维
// mkdir('upload') or die('创建目录失败');
// //二维
// $_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/jpj','image/jpeg','image/png'];

        // 判断用户上传的文件类型是否正确
		if(in_array($_FILES['upload']['type'], $allow)) {
            //3.将用户文件上传到指定的临时目录:move_uploaded_file()
           if(move_uploaded_file($_FILES['upload']['tmp_name'], "upload/{$_FILES['upload']['name']}")){
            	//4.上传成功
            	echo "<script><span style='color:green'>上传成功</span></script>";
				} 


		}else{
			echo  '<script><span style="color:red">没有文件</span></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;
			
			default:
				echo '未知错误';
				break;
		}

		echo '</strong></p>';
		//保险起见,最好把创建的临时文件删除,当然系统也会在结束会话时自动清空
		//file_exists判断文件是否存在
		if(file_exists($_FILES['upload']['tmp_name']) && is_file($_FILES['upload']['tmp_name'])){
			unlink($_FILES['upload']['tmp_name']);
		}
	}
}
?>



<!-- <script type="text/javascript" src="js/js.js"></script>
<script type="text/javascript">
     $('button').click(function(){
     	$.ajax({
     		url : '',
     		type : 'POST',
            // dataType : 'json',
            async : true,
            data :'name='+$_FILES['upload'],
            success: function(res){
               $('p').append($(res))
           }  
       
     })
     }
</script> -->

运行实例 »

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



备注:提示信息全部采用Ajax方式显示,实在是不知道该怎样做了。

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