当前位置: 首页 > news >正文

base64图上上传保存到服务器

为什么80%的码农都做不了架构师?>>>   hot3.png

使用$.post提交表格时,图片是无法上传的(除非用编辑器插件什么的,那些都比较大)。 这是一个新思路,图片转base64编码,提交上去,当然,图片不能太大,超过上传限制是不行的。

function base64_upload($base64) {
    $base64_image = str_replace(' ', '+', $base64);
    //post的数据里面,加号会被替换为空格,需要重新替换回来,如果不是post的数据,则注释掉这一行
    if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image, $result)){
        //匹配成功
        if($result[2] == 'jpeg'){
            $image_name = uniqid().'.jpg';
            //纯粹是看jpeg不爽才替换的
        }else{
            $image_name = uniqid().'.'.$result[2];
        }
        $image_file = "./upload/test/{$image_name}";
        //服务器文件存储路径
        if (file_put_contents($image_file, base64_decode(str_replace($result[1], '', $base64_image)))){
            return $image_name;
        }else{
            return false;
        }
    }else{
        return false;
    }
}

出处

转载于:https://my.oschina.net/oneboi/blog/734369

相关文章:

  • ajax报错302重定向错误
  • ArcGIS Engine开发之旅03--ArcGIS Engine中的控件
  • kafka消费过程中失败,kafka重试补偿
  • 从0到1搭建属于自己的服务器
  • PostgreSQL实战(2)数据结构
  • 金蝶kis记账王初始化过程中如何设置科目
  • SpringBoot项目的jar包在启动时选择的多环境配置以及加载顺序
  • PostgreSQL中date数据类型
  • springmvc带参数链接跳转,实现单一样式容器
  • Spring Boot 打包分为 war 格式,放到Tomcat下报错的解决方案
  • 窗体的事件
  • PostgreSQL序列的创建和使用
  • PostgreSQL的数据备份与恢复(windows版本)
  • 表单提交相关
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • classpath对获取配置文件的影响
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • mockjs让前端开发独立于后端
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • React-Native - 收藏集 - 掘金
  • Service Worker
  • 记录一下第一次使用npm
  • 理清楚Vue的结构
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 收藏好这篇,别再只说“数据劫持”了
  • 数据科学 第 3 章 11 字符串处理
  • ![CDATA[ ]] 是什么东东
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • #考研#计算机文化知识1(局域网及网络互联)
  • $.ajax()方法详解
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (js)循环条件满足时终止循环
  • (笔试题)合法字符串
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (过滤器)Filter和(监听器)listener
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (一)基于IDEA的JAVA基础1
  • .NET 设计一套高性能的弱事件机制
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .NET连接MongoDB数据库实例教程
  • .net专家(高海东的专栏)
  • @media screen 针对不同移动设备
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法
  • @软考考生,这份软考高分攻略你须知道
  • [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • [autojs]autojs开关按钮的简单使用
  • [BZOJ] 2044: 三维导弹拦截
  • [CareerCup] 17.8 Contiguous Sequence with Largest Sum 连续子序列之和最大
  • [DNS网络] 网页无法打开、显示不全、加载卡顿缓慢 | 解决方案
  • [hdu 4552] 怪盗基德的挑战书