PHP语言基础学习四:文件上传
小标 2018-07-26 来源 : 阅读 754 评论 0

摘要:本文主要向大家介绍了PHP语言基础学习四:文件上传,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

本文主要向大家介绍了PHP语言基础学习四:文件上传,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

<!-- 文件上传 --> 

<form action="" enctype="multipart/form-data" method="post"> 

    <input type="file" name="文件"/><br /> 

    <input type="submit" value="上传"/> 

</form> 

<?php 

//文件上传之需要注意php.ini文件 

//     php.ini文件中的配置 

//     file_uploads 

//     post_max_size 

//     upload_max_filesize 

//     memory_limit 

// print_r($_FILES["upfile"]); 

if (is_uploaded_file($_FILES['upfile']['tmp_name'])) { 

    $upfile=$_FILES["upfile"]; 

    $name=$upfile["name"]; 

    $type=$upfile["type"]; 

    $size=$upfile["size"]; 

    $tmp_name=$upfile["tmp_name"]; 

       

    switch ($type) { 

        case 'image/pjpeg': 

            $okType=true; 

            break; 

        case 'image/jpeg': 

            $okType=true; 

            break; 

        case 'image/gif': 

            $okType=true; 

            break; 

        case 'image/png': 

            $okType=true; 

            break; 

    } 

    if ($okType) { 

        $error=$upfile["error"]; 

        echo "==================<br/>"; 

        echo "上传的文件名称是:".$name."<br/>"; 

        echo "上传的文件类型是:".$type."<br/>"; 

        echo "上传的文件大小是:".$size."<br/>"; 

        echo "上传之后系统返回的值是:".$error."<br/>"; 

        echo "上传的文件临时存放的文件路径是:".$tmp_name."<br/>"; 

           

        echo "开始移动上传文件<br/>"; 

        move_uploaded_file($tmp_name, 'up/'.$name); 

        $destination="up/".$name; 

        echo "================<br/>"; 

        echo "上传信息:<br/>"; 

        if ($error==0) { 

            echo "文件上传成功!"; 

            echo "<br>图片预览<br>"; 

            echo "<img src=".$destination.">"; 

        }elseif ($error==1){ 

            echo "超过了文件大小,在php.ini文件中设置"; 

        }elseif ($error==2){ 

            echo "超过文件的大小MAX_FILE_SIZE选项指定的值"; 

        }elseif ($error==3){ 

            echo "文件只有部分被上传"; 

        }elseif ($error==4){ 

            echo "上传文件大小为0"; 

        } 

    }else { 

        echo "请上传jpg,gif,png等格式的图片"; 

    } 

?> 

   

<!-- 文件上传的步骤 --> 

<?php 

//     一、判断是否有错误码 

//     二、自定义判断是否超出文件大小范围 

//     三、判断后缀名和mime类型是否符合 

//     四、生成文件名 

//     五、判断是否是上传文件 

//     六、移动临时文件到指定位置 

?> 

   

<!-- 文件上传表单注意事项 --> 

<html> 

    <head> 

        <meta charset="utf-8"/> 

        <title>单文件上传</title> 

    </head> 

    <body> 

        <form action="file.php" method="post" 

        enctype="multipart/form-data"> 

        <input type="file" name="filename"/> 

        <input type="submit" value="上传"/> 

        </form> 

    </body> 

</html> 

   

<!-- 按照数组和步骤完成文件上传 --> 

<!-- 第一步,判断错误码 --> 

<!-- 第二步,判断文件是否超出大小 --> 

<!-- 第三步,判断文件的mime类型是否正确 --> 

<!-- 第四步,生成指定的路径和文件名 --> 

<!-- 第五步,判断是否是上传文件 --> 

<!-- 第六步,移动文件到指定位置 --> 

<form action='' method='post' enctype='multipart/form-data'> 

    <input type='file' name='myfile' /> 

    <input type="submit" /> 

</form> 

   

<?php 

    echo '<pre>'; 

    var_dump($_FILES['myfile']); 

    echo '</pre>'; 

       

    if ($_FILES['myfile']['error'] > 0) { 

        switch ($_FILES['myfile']['error']) { 

            case '1': 

                echo '文件过大'; 

                break; 

            case '2': 

                echo '文件超出指定大小'; 

                break; 

            case '3': 

                echo '只有部分文件被上传'; 

                break; 

            case '4': 

                echo '文件没有被上传'; 

                break; 

            case '6': 

                echo '找不到指定文件'; 

                break; 

            case '7': 

                echo '文件写入失败'; 

                break; 

            default: 

                echo '上传出错<br/>';     

        } 

    }else{ 

        $MAX_FILE_SIZE = 100000; 

        if ($_FILES['myfile']['size'] > $MAX_FILE_SIZE) { 

            exit("文件超出指定大小"); 

        } 

           

        $allowSuffix = array('jpg','gif'); 

           

        $myImg = explode('.', $_FILES['myfile']['name']); 

        $myImgSuffix = array_pop($myImg); 

        if (!in_array($myImgSuffix, $allowSuffix)) { 

            exit("文件后缀名不符"); 

        } 

        $allowMime = array( 

            "image/jpg", 

            "image/jpeg", 

            "image/pjpeg", 

            "image/gif" 

        ); 

        if (!in_array($_FILES['myfile']['type'],  

            $allowMime)) { 

            exit('文件格式不正确,请检查'); 

        } 

        $path = "upload/images/"; 

        $name = data('Y').date('m').date("d") 

        .date('H').date('i').date('s'). 

        rand(0,9).'.'.$myImgSuffix; 

           

        if (is_uploaded_file($_FILES['file']['tmp_name'])) { 

            if (move_uploaded_file($_FILES['myfile']['tmp_name'], $path.$name)) { 

                echo "上传成功"; 

            }else { 

                echo '上传失败'; 

            } 

        } 

    } 

?> 

   

<!-- 多文件上传 --> 

<html> 

    <head> 

        <meta charset="utf-8" /> 

        <title>单文件上传</title> 

    </head> 

    <body> 

        <form action="" method="post" enctype="multipart/form-data"> 

            <input type="file" name="file[]" /> 

            <input type="file" name="file[]" /> 

            <input type="sumbit" value="上传" /> 

        </form> 

    </body> 

</html> 

<?php 

    var_dump($_FILES); 

?> 

   

<?php 

    for ($i=0;$i < count($_FILES['file']['name']);$i++){ 

        if (is_uploaded_file($_FILES['file']['tmp_name'][$i]) && 

            $_FILES['file']['error'][$i] == 0) { 

            if (move_uploaded_file($_FILES['file']['tmp_name'][$i], 

                'upload/'.$_FILES['file']['name'][$i])) { 

                echo "上传成功"; 

            }else { 

                echo '上传失败'; 

            } 

        } 

    } 

?> 

   

<!-- 文件上传进度处理 --> 

<!-- 结合jquery、javascript、ajax -->

以上就介绍了PHP的相关知识,希望对PHP有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言PHP频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程