Blogger Information
Blog 38
fans 0
comment 2
visits 23940
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
文件上传—4月19日
→忆指凡尘&的博客
Original
522 people have browsed it

实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>文件上传</title>
</head>
<body>
	<form  enctype="multipart/form_data">
		<!-- <input type="hidden" name="MAX_FILE_SIZE" value="542488"> -->
		<fieldset style="width: 400px">
			<legend>文件上传</legend>
			<p>文件上传:<input type="file" name="upload" id="file"></p>
			<p><button type="sbmit" name="submit">上传</button></p>
		</fieldset>
	</form>	
</body>
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript">
	$('button').eq(0).click(function(){

		if($('#file').val().length==0){
            $('#file').parent($('span').remove())
            $('button:first').after('<span style="color: #ff0000;">请先选择上传的文件!</span>')
        }else{
            //获取文件路径
            var files=$("#file")[0].files[0]
            //创建 formData 对象 FormData为序列化表单
            var formdata = new FormData()
            formdata.append('files',files)
            //采用 ajax 进行发送
            $.ajax({
                url:'admin/check.php',
                type:'POST',
                data:formdata,
                dataType:'JSON',
                processData:false,//用于对data参数进行序列化处理  
                contentType:false,
                success:function (status) {
                    console.log(status.msg)
                    $('#file').parent($('span').remove())
                    $('#file').after('<br><span>'+status.msg+'</span>')
                }
            })
        }
	})
</script>
</html>

运行实例 »

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

实例

<?php

if($_SERVER['REQUEST_METHOD']=="POST"){
    //判断提交过来的请求是否为空,不为空则有文件上传
    if(isset($_FILES['files'])){
        $img_type=['image/jpg','image/jpeg','image/png'];

        //判断上传的图片类型是否是图片数组中的类型
        if(in_array($_FILES['files']['type'], $img_type)){

            //将上传的文件重命名
            $date=date('Ymdhis');//得到当前时间
            $fileName=$_FILES['files']['name'];//得到上传文件的名字
            $name=explode('.',$fileName);//将文件名以'.'分割得到后缀名,得到一个数组
            $newPath=$date.'.'.$name[1];//
            $oldPath=$_FILES['files']['tmp_name'];//临时文件夹,即以前的路径

            //将用户文件保存到指定目录
            if(move_uploaded_file($oldPath,"upload/{$newPath}")){
                echo json_encode(['msg'=>'上传成功!新的文件名是:'.$newPath]);
            } else {
                echo json_encode(['msg'=>'上传失败']);
            }
        }else{
            echo json_encode(['msg'=>'只可以上传jpg,jpeg,png的图片']);
        }
    }else{
        echo json_encode(['msg'=>'请先上传文件']);
    }
    //上传失败的常见错误捕获
    if($_FILES['files']['error']>0){
        switch ($_FILES['files']['error']) {
            case 1:
                echo json_encode(['msg'=>'文件超过php.ini中的默认大小']);
                break;
            case 2:
                echo json_encode(['msg'=>'文件超过表单设置大小']);
                break;
            case 3:
                echo json_encode(['msg'=>'文件只有一部分上传']);
                break;
            case 4:
                echo json_encode(['msg'=>'没有文件上传']);
                break;
            case 6:
                echo json_encode(['msg'=>'没有临时文件夹']);
                break;
            case 8:
                echo json_encode(['msg'=>'上传意外终止']);
                break;
            default:
                echo json_encode(['msg'=>'未知错误']);
                break;
        }
    }

    //清空临时文件下的文件,系统也会在回话结束时清空
    if(file_exists($_FILES['files']['tmp_name'])&&is_file($_FILES['files']['tmp_name'])){
        unlink($_FILES['files']['tmp_name']);
    }
}
?>

运行实例 »

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

                                                                                         课程总结

1.系统变量: $_FILES是一个二维数组,一维是当前的文件上件控件的名称,就是name属性值

     二维是它的当前属性,最重要的有以下几个:

        $_FILES['file']['name']: 文件原始名称

        $_FILES['file']['type']: 文件类型

        $_FILES['file']['size']: 上传的文件大小

       $_FILES['file']['tmp_name']: 服务器上的临时文件夹

       $_FILES['file']['error']: 上传错误代码

2.处理脚本的三种语法:

(1)最严格的写法:$_SERVER['PHP_SELF']:建议实际工作中用htmlspecialchars()进行防跨域攻击处理

(2) 最死板的写法,直接写上当前文件名: demo.php

(3)最简单的写法: 空,啥也不写,默认就是提交到当前页面的php脚本处理


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