图片文件上传

上传文件原理
 上传文件,就是将文件从浏览器端传到服务器端;
 上传文件,必须使用

标记来向服务器端发数据;
 上传文件,标记的method属性值必须是POST;
 上传文件,标记的enctype属性值必须是multipart/form-data;
 上传文件,必须使用标记实现

超全局变量数组$_FILES

image.png

图片文件上传_第1张图片

上传文件的相关配置(php.ini)
 upload_tmp_dir配置:修改上传文件的临时目录;
 upload_max_filesize配置:上传单个文件的大小限制,默认为2MB。
 post_max_size配置:规定上传多个文件的总大小,默认为8MB。
 max_file_uploads配置:规定最多上传的文件个数,默认为20个。
 file_uploads配置:上传功能是否开启,默认为on。

图片文件上传_第2张图片
image.png

获取文件路径信息 pathinfo()
 描述:返回文件路径的信息 ;
 语法:mixed pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )
 参数:
 $path,要解析的路径。
 $options,如果省略,返回全部单元,取值有:PATHINFO_DIRNAME(目录名称)、PATHINFO_BASENAME(文件名称)、PATHINFO_EXTENSION(扩展名)、PATH_FILENAME(文件名)。

检查数组中是否存在某个值 in_array()
 描述:检查数组中是否存在某个值
 语法:bool in_array ( mixed $needle , array $arr )
 参数:$needle检索的值,$arr原数组。

生成唯一ID uniqid()
 描述:生成一个唯一ID
 语法:string uniqid ([ string $prefix = "" [, bool $more_entropy = false ]] )
 参数:
 $prefix前缀字符串,如果省略,返回字符串长度为13;
 $more_entropy后缀字符集,如果省略,返回字符串长度为23。

前端文件file.html




    
    文件上传




    上传图片:

image.png

后台接收文件upload.php

";
    print_r($_FILES);
    echo "
";

    //(1)判断上传文件有没有错误发生
    if($_FILES['uploadFile']['error']!=0)
    {
        echo "上传文件有错误发生";
        die();
    }
    //(2)上传文件大小不能超过2MB
    if($_FILES['uploadFile']['size']>1024*1024*2)
    {
        echo "上传文件超过了2MB的最大限额!";
        die();
    }
    //(3)判断上传文件是否为图片
    $arr=array('jpg','gif','png');
    $ext=pathinfo($_FILES['uploadFile']['name'],PATHINFO_EXTENSION);
    if(!in_array($ext,$arr))
    {
        echo '上传文件类型不是图片';
        die();
    }
    //(4)移动文件
    $tmp_name=$_FILES['uploadFile']['tmp_name'];    //临时文件
    $dst_name="./img/".uniqid().".".$ext;
    move_uploaded_file($tmp_name,$dst_name);
    echo "文件{$_FILES['uploadFile']['name']}上传成功!";
    header("Refresh:3;url=./file.html");
    die();
}
else
{
    echo "非法操作!";
}
?>
图片文件上传_第3张图片
image.png

你可能感兴趣的:(图片文件上传)