热搜词
发表于 2021-11-8 17:03:18 | 显示全部楼层 |阅读模式
文件上传的原理
客户端将传输的文件转换成二进制码,传到服务器,服务器将二进制对应成为文件,并临时存储在缓存池(临时文件)
供php操作存储期限为半小时,当php完成存写操作后会清除缓存池
文件的上传,其实就是把该临时文件移动到指定的位置的过程

话不多说,我们来实操一下

前端代码
        <!--表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。
        默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;
        只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作.-->
        <form action="file.php" method="post" enctype="multipart/form-data">                       
                <input type="file" value="" name="file"/>
                <input type="submit" value="提交"/>
        </form>


后台操作
<?php

        //拿到文件
        $file=$_FILES['file'];
        //临时文件存放路径
    $fileTmp = $file['tmp_name'];
        //文件名(带后缀)
        $fileName = $file['name'];
    //文件文件类型
    $fileType = $file['type'];
    //文件大小(字节)
    $fileSize = $file['size'];
    //错误,输出0,表示文件提交成功
    $fileError = $file['error'];
    if($fileError==0){
            //判断文件类型
            $file_type=['image/jpeg','image/png','application/pdf'];
            if(!in_array($fileType,$file_type)){
                    echo '文件上传类型错误';
                    die;
            }
            //创建保存文件目录
            if(!is_dir('./File')){
                    mkdir('./File');
            }
            //解决中文文件名问题
                $name = iconv('utf-8', 'gb2312', $fileName);
            //移动临时文件到指定目录
            move_uploaded_file($fileTmp,'./File/'.$name);
        echo "保存成功";
    }else{
        echo "保存失败";
    }       
?>

如果您觉得本篇内容不错,可以点个关注,给个赞


全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-12-28 12:13 , Processed in 0.154567 second(s), 22 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team