php基础四之文件上传

不言
发布: 2018-04-26 14:22:14
原创
1234人浏览过

这篇文章介绍的内容是关于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基础二

四维时代AI开放平台
四维时代AI开放平台

四维时代AI开放平台

四维时代AI开放平台 66
查看详情 四维时代AI开放平台

php基础一

以上就是php基础四之文件上传的详细内容,更多请关注php中文网其它相关文章!

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号