zoukankan      html  css  js  c++  java
  • 图片base64上传时可能遇到的问题

    base64上传图片时服务器接到的值可能会丢失字符串

    解决方法如下:(分为单个上传和多个上传)

    <?php
    $BASE_DIR = "../";
    //文件上传
    $img = isset($_POST['img'])?$_POST['img']:'';
    $dir = isset($_POST['dir'])?$_POST['dir']:'img';
    $result = array();
    $arr = [];
    if (is_array($img)){
        foreach ($img as $v){
            if (preg_match('/^(data:s*image/(w+);base64,)/', $v, $result)) {
                $type = $result[2];
                $file = "images/{$dir}/" . date('Ymd', time()) . "/";
                if (!file_exists($file)) {
                    //检查是否有该文件夹,如果没有就创建,并给予最高权限
                    mkdir($file, 0777, true);
                }
                $file = $file . time(). '_' .rand(0,100) . ".{$type}";
                $data = str_replace(' ','+',$v);
                if (file_put_contents($file, base64_decode(str_replace($result[1], '', $data)))) {
                    $arr[] = $file;
                } else {
                    return false;
                }
            }
        }
        echo json_encode($arr);
    } else {
        if (preg_match('/^(data:s*image/(w+);base64,)/', $img, $result)){
            $type = $result[2];
            $file = "images/{$dir}/" . date('Ymd', time()) . "/";
    
            if (!file_exists($file)) {
                //检查是否有该文件夹,如果没有就创建,并给予最高权限
                mkdir($file, 0777, true);
            }
            $file = $file . time() . '_' . rand(0, 100) . ".{$type}";
            $data = str_replace(' ', '+', $img);
            if (file_put_contents($file, base64_decode(str_replace($result[1], '', $data)))) {
                $file = substr($file,strpos($file,'/')+1);
                echo json_encode($file);
            } else {
                return false;
            }
        }
    }

    主要就是把服务器接到的值做一个字符串替换,解决问题!

    以上就是这次的全部内容!

  • 相关阅读:
    定时任务框架APScheduler学习详解
    Python list 和 str 互转
    python多个变量赋值
    python数据类型转换
    jquery datetimepicker 配置参数
    c#判断是否为合法的email地址
    SQL的四种连接-左外连接、右外连接、内连接、全连接
    SQL表连接查询(inner join、full join、left join、right join)
    简单的日期转换
    递归
  • 原文地址:https://www.cnblogs.com/jingxiaoniu/p/8038900.html
Copyright © 2011-2022 走看看