Blogger Information
Blog 46
fans 1
comment 1
visits 30221
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
文件上传的完整实现过程-2018年4月19日
笨鸟先飞
Original
628 people have browsed it

代码:

实例

<!-- 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方式显示,实在是不知道该怎样做了。

Correction status:Uncorrected

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