php基础四之文件上传

不言
不言 原创
2023-03-24 16:26:01 790浏览

这篇文章介绍的内容是关于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中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。