欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php基础四之文件上传

程序员文章站 2022-03-15 09:12:57
...
这篇文章介绍的内容是关于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基础一

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

相关标签: php 基础