前台传图片的base64格式,后台处理方式
//处理图片信息 返回对应的路径
public function uploadBaseIma($imgArr){
$result = array();
//将路径直接设置在uploads下
if($imgArr){
foreach($imgArr as $k => $v){
if($v){
//判断上传的是否为原地址
$a = preg_match('/.*(\.png|\.jpg|\.jpeg|\.gif)$/', $v);
if($a){
//是就存储不变,将文件路径存储
$b = substr($v,36);
$result[$k] = $b;
}else{
//不是就上传图片
$address = $this->baseChangeImg($v);
$result[$k] = $address;
}
}else {
return array();
}
}
return $result;
}
}
//base64转化为本地图片
public function baseChangeImg($base)
{
//匹配出图片的格式
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base, $result)) {
$type = $result[2];
$path = '/base' . date('Ymd', time()) . "/";
$new_file = public_path('uploads') . $path;
if (!file_exists($new_file)) {
//检查是否有该文件夹,如果没有就创建,并给予最高权限
mkdir($new_file, 0700);
}
$name = uniqid() . ".{$type}";
$new_file = $new_file . $name;
if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base)))) {
return $path . $name;
} else {
return false;
}
}
}
注:
上面uploadBaseIma方法中截取的36是'https://jiankang.test123.com/uploads';网址的长度,改进后可以这样
public static $urlAll; //静态变量
public function __construct(){
$server_name = $_SERVER['SERVER_NAME'];
self::$urlAll = 'https://'.$server_name.'/uploads';//重组成对应项目的网址
}
声明静态变量$urlAll给其赋值需要使用的网址
在uploadBaseIma方法中
$urlAll = self::$urlAll;
$num = strlen($urlAll);
$b = substr($v,$num);
将$b进项替换 实现动态更换网址
//处理图片信息 返回对应的路径
public function uploadBaseIma($imgArr){
$result = array();
//将路径直接设置在uploads下
if($imgArr){
foreach($imgArr as $k => $v){
if($v){
//判断上传的是否为原地址
$a = preg_match('/.*(\.png|\.jpg|\.jpeg|\.gif)$/', $v);
if($a){
//是就存储不变,将文件路径存储
$urlAll = self::$urlAll;
$num = strlen($urlAll);
$b = substr($v,$num);
$result[$k] = $b;
}else{
//不是就上传图片
$address = $this->baseChangeImg($v);
$result[$k] = $address;
}
}else {
return array();
}
}
return $result;
}
}

 

base64图片上传,并根据不同项目进行智能修改图片的更多相关文章

  1. 图片上传并显示(兼容ie),图片大小判断

    图片上传并显示(兼容ie),图片大小判断 HTML <div id="swf" style="margin: 0 auto;text-align: center;& ...

  2. c#中富文本编辑器Simditor带图片上传的全部过程(项目不是mvc架构)

    描述:最近c#项目中使用富文本编辑器Simditor,记录一下以便以后查看. 注:此项目不是MVC架构的. 1.引用文件 项目中引用相应的css和js文件,注意顺序不能打乱,否则富文本编辑器不会正常显 ...

  3. spring boot图片上传至远程服务器并返回新的图片路径

    界面上传图片时考虑到可能会有用户的图片名称一致,使用UUID来对图片名称进行重新生成. //UUIDUtils public class UUIDUtils { public static Strin ...

  4. 七牛--关于图片上传方向不统一的问题--主要关于图片EXIF信息中旋转参数Orientation的理解

    [图片引用方向纠正]直接在图片后面添加 ?imageMogr/auto-orient eg:http://data.upfitapp.com/data/2016/10/18/1629114767606 ...

  5. 【转载】【JAVA秒会技术之图片上传】基于Nginx及FastDFS,完成图片的上传及展示

    基于Nginx及FastDFS,完成商品图片的上传及展示 一.传统图片存储及展示方式 存在问题: 1)大并发量上传访问图片时,需要对web应用做负载均衡,但是会存在图片共享问题 2)web应用服务器的 ...

  6. PHP结合Ueditor并修改图片上传路径 微信小程序 拼接域名显示图片

    前言 在使用UEditor编辑器时,一般我们都是需要修改默认的图片上传路径的,下面是我整理好的修改位置和方法供大家参考. 操作 Ueditor PHP版本本身自带了一套上传程序,我们可以在此基础中,找 ...

  7. 小程序实现图片上传,预览以及图片base64位处理

    最近一段时间在做小程序项目,第一期功也完工了.需要好好总结一下经验,把项目中遇到的问题好好总结一下,遇到的问题,踩过的坑.今天写一个小程序实现图片上传,预览,以及删除,图片base64位处理.下面就是 ...

  8. 关于web项目中的图片上传、并在前端显示问题(tomcat中配置文件上传虚拟路径)

    一.数据库存储 直接把图片的二进制码存到数据库,可参考blog:http://blog.csdn.net/hope2jiang/article/details/590733 直接存图片在mysql上面 ...

  9. php实现base64图片上传方式实例代码

    <?php /** * base64图片上传 * @param $base64_img * @return array */ header("content-type:text/htm ...

随机推荐

  1. 洛谷P3393逃离僵尸岛 最短路

    貌似一直不写题解不太好QAQ 但是找不到题啊... 随便写点水题来补博客吧 题目不pa了,点链接吧... 点我看题 很明显这是道sb题... 思路:  对于每一个僵尸城市预处理其 s 距离内的城市,然 ...

  2. root run-parts

    crontab的文件格式 分 时 日 月 星期 要运行的命令 第1列分钟0-59 第2列小时0-23(0表示子夜) 第3列日1-31 第4列月1-12 第5列星期0-7(0和7表示星期天) 第6列要运 ...

  3. FTP的安装配置使用

    ///////////////////////////////FTP///////////////////////////////////////////////////写在前面:在linux 环境下 ...

  4. angular ng-repeat 如何实现嵌套

    slides是一个二维数组 <div ng-repeat="links in slides"> <div ng-repeat="link in link ...

  5. Selenium with Python 010 - unittest 框架(又称PyUnit 框架)

    unittest进行python代码单元测试 calculator.py--被测试类 #!/usr/bin/env python # -*- coding: utf-8 -*- # 将要被测试的类 c ...

  6. 51nod-1526-贪心+Trie

    题目链接在这 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 320 难度:7级算法题 收藏 关注 班里有n个同学.老师为他们选了n个笔名.现在要把这些笔 ...

  7. python面向对象编程 继承 组合 接口和抽象类

    1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均用点来访问自己的 ...

  8. 修改element内部样式的两种方式

    第一种: 全局样式修改: 但这种方式有点不好的地方,这样会影响别的组件,比如修改elementUI的树结构的样式,这样改的话会影响到别的树组件: 第二种方式: 在要修改的组件内修改树结构样式 比如改这 ...

  9. 012——VUE中todos示例讲解class中应用表达式

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. dojo学习教程

    Dojo 作为最著名的 Ajax 开源项目之一,不仅让 Web 程序员可以免费获得和使用其框架进行 Web 应用的开发,更吸引了大量的开发者对其不断的扩充,开发新的组件.DojoX 就是在这样的开发社 ...