分享编程~
 

php 文件上传类支持多文件上传base64文件上传图片压缩裁剪

自行封装php文件上传类,支持多文件上传base64多文件上传,缩略图生成,图片压缩,图片裁剪

天天特卖抢好货

自行封装php文件上传类,支持单文件多文件上传,支持blob二进制,支持base64上传,支持缩略图生成,图片压缩,图片裁剪,调用方便,直接引入文件实例化类调用uploadFile方法简单传参,如下调用示例:

// 第一步:引入文件上传类
include 'UploadsFiles.php';
//$data1 = 'data:image/jpeg;base64,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';
//$data2 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAABICAYAAACKo8lYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAH1SURBVHhe7da/ccIwGIdhjwXrUDAHNQ0dS1BQMQAr5I4qC7AAXS4KkoX/SfbJ9iuTS37F0yjKIV5/Ni6+vx5GGIoJUkyQYoIUE6SYIMUEKSZIMUGKCVJMkGKCFBOkmCDFBCkmSDFBiglSTJBighQTpJggxQQpJkgxQYoJUkyQYoIUE6SYIMUEKSZIMUGKCYrEPJvtbmUO9+56V+q+/yOI+XldmeJ0bq3F9O677816V5jCW18/wj3vVp2RHYZOzJlT6Q+5vb3W7L7+oIdjHd2q/y+zKubGXGJ/n6gVc+5U2vUgnD34cd9ei0Yu11I+fz7/WcG55mnE7Jm2QOo+77YJAl1Ow9PqJtT+n5uefqP2RT6HvnBVzNnPyigbvnsrxdZq0enOYOiCTuVjZpjK4PnZWB+4vZaKmYOLiU+lC9kXPXEyM9/mOTxjwlPpvtzwPnuLxb/giMlfgD2nuyCJP1QFOZVuT3fqYrd17BHg137TLV6+uqVf3IKcyu57YyV2ZX285r6lbsckr/Ml/9g+Y6LPyjGCmOVE5/iVnaK8y8Y9chrvmcsqn0f1YcvDP9fgF+mp3PlGDtDbYv5FiglSTJBighQTpJggxQQpJkgxQYoJUkyQYoIUE6SYIMUEKSZIMUGKCVJMkGKCFBOkmCDFBCkmSDExD/MD9p98hQkIhc0AAAAASUVORK5CYII=';
// 第二步:根据自己需求设置上传参数,一下参数作为参考:
//$params['file_data'] = $data1;                // 为base64上传时【必填】数组或字符串(单文件直接传一个)
//$params['file_data'] = array($data1, $data2); // 为base64上传时【必填】数组或字符串(多文件数组方式)
$params['file_name'] = 'file_name';             // 二进制文件参数名,为$_FILE时【必填】字符串 支持多文件上传(file控件name属性的值,例如<input type="file" name="file_name">)
$params['file_path'] = './public/upload/';      // 上传路径【选填】默认:./uploads/
$params['file_size'] = 1024*1024*2; // 2Mb      // 上传文件大小限制【选填】默认值2Mb
$params['file_type'] = 'jpg|gif|png';           // 上传类型【选填】默认值为常用的图格式文件格式等
$params['thum_flag'] = 1;                       // 缩略图生成【选填】默认值0,上传文件不是图片时设置无效;0:不生成缩略图,1:原图压缩到指定宽高,2:宽度固定高度自适应,3:高度固定宽度自适应,4:以原图中心点截图, 其他值均为1类型
$params['thum_width'] = 100;                    // 缩略图宽【选填】默认值100(即100px),上传文件不是图片时设置无效
$params['thum_height'] = 100;                   // 缩略图高【选填】默认值100(即100px),上传文件不是图片时设置无效
$params['thum_quality'] = 100;                  // 缩略图质量【选填】默认值100,上传文件不是图片时设置无效
$params['thum_path'] = './a/upload/thum/';      // 缩略图上传路径【选填】默认值‘./uploads/thum/’,上传文件不是图片时设置无效
$params['file_vague'] = false;                  // 无扩展名文件上传开关【选填】默认false; false:不支持,true支持,默认值参考435行可以自行追加
//第三步:实例化文件上传类,并调用文件上传方法即可
$uploads = new UploadsFiles();
$result = $uploads->uploadFile($params);

返回的是数组格式,根据实际情况需要json可以自行转换,比如json_encode($result, 320),print_r($result); // 打印出结果集查看数据结构

成功返回数组(单文件数据结构):

////// 单文件数据结构 //////
Array
(
    [code] => 10000
    [msg] => 文件上传成功
    [data] => Array
        (
            [width] => 503
            [height] => 507
            [size] => 15226
            [sizetxt] => 14.87kb
            [name] => 20200424105347501.jpg
            [path] => ./upload/20200424105347501.jpg
            [type] => jpg
            [thum_name] => 20200424105347501.jpg
            [thum_path] => ./upload/thum/20200424105347501.jpg
            [thum_width] => 100
            [thum_height] => 100
            [thum_size] => 7944
            [thum_sizetxt] => 7.76kb
        )
)


多文件返回集数据格式:

////// 多文件数据结构 //////
Array
(
    [0] => Array
        (
            [code] => 10000
            [msg] => 文件上传成功
            [data] => Array
                (
                    [width] => 132
                    [height] => 157
                    [size] => 10885
                    [sizetxt] => 10.63kb
                    [name] => 2022091012185331271.png
                    [path] => ./log/2022091012185331271.png
                    [type] => png
                )
        )
    [1] => Array
        (
            [code] => 10000
            [msg] => 文件上传成功
            [data] => Array
                (
                    [width] => 108
                    [height] => 179
                    [size] => 9641
                    [sizetxt] => 9.42kb
                    [name] => 2022091012185331536.png
                    [path] => ./log/2022091012185331536.png
                    [type] => png
                )
        )
)

注意:传单文件时如果以数组的方式传入返回的结果集是多文件的结构

UploadsFiles.php 封装类源码下载:

链接:https://pan.baidu.com/s/1VW24i9Daz74SQpXf7Mkkag 

提取码:6tm8

如果对上传HTML页面有要求,请回看前几篇文件上传相关文章,或者在本站搜索关键词“文件上传”查看相关。


上一篇:PHP业务流程错误排查代码错误排查生成日志文件示例下一篇:javascript变量之间赋值问题需要注意的坑
赞(2) 踩(0)
您说多少就多少,您的支持是我最大的动力
赏金
微 信
赏金
支付宝
本文连接: https://www.yj521.com/article/40.html
版权声明: 本文为原创文章,版权归《越加网》所有,分享转载请注明出处!