<?php
defined('BASEPATH') OR exit('No direct script access allowed');
include_once (APPPATH . "controllers/admin/Auth.php");
include_once (APPPATH.'libraries/PicUpload.php');
class goodsInfo extends Auth {
//产品修改
public function edit(){
$tid=$this->newrow['tid'];
//获取待修改的商品详细图片信息
$ree['info']=$this->db->select('*')->from('goods_info')->where(array('tid'=>$tid))->get()->result_array();
//根据id从硬盘上删除产品原图及缩略图和产品成分图片
$pic=$this->db->select('ingredients,origin_pic,home_pic,product_cat_pic,detail_pic,cart_pic')
->from('goods_info')
->where(array('tid'=>$tid))
->get()
->result_array();
$picture_upload=new PicUpload();
if(!empty($this->newrow['origin_pic'])){
unlink(OMG.ORIGIN.$pic[]['origin_pic']);
unlink(OMG.HOME.$pic[]['home_pic']);
unlink(OMG.PRODUCT.$pic[]['product_cat_pic']);
unlink(OMG.DETAIL.$pic[]['detail_pic']);
unlink(OMG.CART.$pic[]['cart_pic']); $pic=$_POST['origin_pic'];
//文件上传保存路径
$image_file=OMG.ORIGIN; $upload_url=$picture_upload->pUpload($pic,'pic2',$image_file);
$origin_pic=$upload_url['url_pic'];
$origin_thumb_pic=OMG.ORIGIN.$origin_pic;
$thumb_name=$upload_url['pri'];
if(!$upload_url){
responseMsg ( , "图片上传失败!", null, , $this->prefix );
$this->db->trans_rollback();
return FALSE;
} for($i=;$i<;$i++){
if($i==){
$width = ;
$height = ;
//缩略后的保存路径
$save_home_pic=OMG.HOME."{$thumb_name}.png";
$home_pic="{$thumb_name}_thumb.png";
//生成缩略图1
//$origin_thumb_pic 要缩略的原图路径
$this->dealthumb($origin_thumb_pic,$save_home_pic,$width,$height);
}elseif($i==){
$width = ;
$height = ;
//缩略后的保存路径
$save_product_cat_pic=OMG.PRODUCT."{$thumb_name}.png";
$product_cat_pic="{$thumb_name}_thumb.png";
//生成缩略图2
//$origin_thumb_pic 要缩略的原图路径
$this->dealthumb($origin_thumb_pic,$save_product_cat_pic,$width,$height);
}elseif($i==){
$width = ;
$height = ;
//缩略后的保存路径
$save_detail_pic=OMG.DETAIL."{$thumb_name}.png";
$detail_pic="{$thumb_name}_thumb.png";
//生成缩略图3
//$origin_thumb_pic 要缩略的原图路径
$this->dealthumb($origin_thumb_pic,$save_detail_pic,$width,$height);
}else{
$width = ;
$height= ;
//缩略后的保存路径
$save_cart_pic=OMG.CART."{$thumb_name}.png";
$cart_pic="{$thumb_name}_thumb.png";
//生成缩略图4
//$origin_thumb_pic 要缩略的原图路径
$this->dealthumb($origin_thumb_pic,$save_cart_pic,$width,$height);
}
}
}else {
$origin_pic = $ree['info'][]['origin_pic'];
$home_pic = $ree['info'][]['home_pic'];
$product_cat_pic = $ree['info'][]['product_cat_pic'];
$detail_pic = $ree['info'][]['detail_pic'];
$cart_pic = $ree['info'][]['cart_pic']; //添加图片1
$pic = $_POST['ingredients'];
//文件上传保存路径
$image_file = OMG . INGREDIENTS;
}
responseMsg ( , "success",null, ,$this->prefix );
}
/*
* 生成缩略图
* @param $path 原图的本地路径
* @param $newPath 缩略图存储路径
*/
private function dealthumb($path,$newPath,$width,$height){
$config['image_library'] = 'gd2';
$config['source_image'] = $path;
$config['new_image'] = $newPath;
$config['create_thumb'] = TRUE;
//生成的缩略图将在保持纵横比例 在宽度和高度上接近所设定的width和height
$config['maintain_ratio'] = TRUE;
$config['width'] = $width;
$config['height'] = $height;
//载入图像处理类库
$this->load->library('Image_lib');
$this->image_lib->initialize($config);
$this->image_lib->resize();
$this->image_lib->clear();
}
}

gmapi\framework\application\libraries\PicUpload.php

<?php
$file = substr( $_SERVER["SCRIPT_FILENAME"], , stripos($_SERVER["SCRIPT_FILENAME"], "framework") );
require_once("{$file}/config.php");
class PicUpload{
/**
* $pic $name $image_file
*/
public function pUpload($pic,$name, $image_file){
$url_pic=array();
//上传图片
if(!empty($pic)){
$url_pic=$this->upload($pic,$name,$image_file);
if(empty($url_pic)){
return false;
}
}
$url=array(
url_pic=>$url_pic['image_name'],
pri=>$url_pic['pri']
);
return $url; }
//字符串转图片
private function upload($base64_image,$name,$image_file){
$file_size=strlen($base64_image); //4.8kb 4925 8k
// 验证文件条件是否符合
if($file_size<= ){ # 未上传文件
return false;
}
if($file_size>= ){ # 图片大于400KB,结束传输
return false;
}
$base64_image = str_replace(' ', '+',$base64_image);//post
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image, $result)){
//匹配成功
if($result[] == 'jpeg'){
$pri=date(YmdHis).$name;
$image_name =$pri .'.png';
}else{
$pri=date(YmdHis).$name;
$image_name =$pri.'.'.$result[];
}
$image_file_1="{$image_file}{$image_name}";
//服务器文件存储路径
//$image_file_1 要写入数据的文件。如果文件不存在,则创建一个新文件。
//base64_decode(str_replace($result[1], '', $base64_image)) 要写入文件的数据。可以是字符串、数组或数据流。
if(file_put_contents($image_file_1, base64_decode(str_replace($result[], '', $base64_image)))){
$data['image_name'] = $image_name;
$data['pri']=$pri;
return $data;
}else{
return false;
}
}else{
return false;
}
}
}

图片上传--base64的更多相关文章

  1. php图片上传base64数据编码。

    /** * base64图片上传 */ function IdImg($base64_img = ''){ $up_dir = 'upload/';//存放在当前目录的upload文件夹下 if(!f ...

  2. 移动端图片上传base64编码

    $base64 = "/9j/4AAQSkZJRgABAQEAkACQAAD/4QCMRXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAA ...

  3. ios base64图片上传失败问题

    今天做图片上传,后台用的是base64解密图片二进制文件,以前都是用表单上传来解决图片上传的,现在后台没有人改,所以研究下base64上传. 需要将图片base64加密,但是调用 [data base ...

  4. 利用cropper插件裁剪本地图片,然后将裁剪过后的base64图片上传至七牛云空间

    现在做的项目需要做一些图片处理,由于时间赶急,之前我便没有处理图片,直接将图片放在input[type=file]里面,以文件的形式提交给后台,这样做简直就是最低级的做法,之后各种问题便出来了,人物头 ...

  5. file标签 - 图片上传前预览 - FileReader & 网络图片转base64和文件流

    记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...

  6. 前端上传 base64 编码图片到七牛云存储

    参考文档 如何上传base64编码图片到七牛云 调试过程 文档中分别有 java 和 html 的 demo,可以根据文档示例调试. 下面是我调试的过程,可以作为参考,特别注意的是,如果需要给文件起名 ...

  7. tp5 base64 图片上传

    /** * 保存图片 */ public function uploads($value='') { // $file = base64_decode(request()->file('imag ...

  8. js实现图片上传预览功能,使用base64编码来实现

    实现图片上传的方法有很多,这里我们介绍比较简单的一种,使用base64对图片信息进行编码,然后直接将图片的base64信息存到数据库. 但是对于系统中需要上传的图片较多时并不建议采用这种方式,我们一般 ...

  9. ASP.NET Core 简单实现七牛图片上传(FormData 和 Base64)

    ASP.NET Core 简单实现七牛图片上传(FormData 和 Base64) 七牛图片上传 SDK(.NET 版本):https://developer.qiniu.com/kodo/sdk/ ...

随机推荐

  1. A股上市公司财报披露时间

    一.上市公司年报披露时间:每年1月1日——4月30日. 二.上市公司中年报披露时间:每年7月1日——8月30日. 三.上市公司季报披露时间: 1季报:每年4月1日——4月30日. 2季报(中报):每年 ...

  2. 都客仿站高手已注册旗舰版V3.1

    链接:https://pan.baidu.com/s/1R5ldFDjekuXmEp42-8SQSQ 提取码:gkm9

  3. luogu P1044 火车进出栈问题(Catalan数)

    Catalan数就是魔法 火车进出栈问题即: 一个栈(无穷大)的进栈序列为 1,2,3,4,...,n 求有多少个不同的出栈序列? 将问题进行抽象, 假设'+'代表进栈, 则有'-'代表出栈 那么如果 ...

  4. Java基础 -2.3

    浮点数类型 所有的数据类型进行自动转型的时候都是由小类型到大类型进行自动转换处理.默认的类型为double,但是也可以定义位数相对较少的float变量 ,此时从赋值的时候就必须采用强制类型转换 pub ...

  5. bat批处理下如何像shell一样将命令执行的效果赋值给变量

    在bat下如何实现像shell一样,把执行命令行后的结果赋值给变量呐? 刚开始,可真难为到我了.随着对bat批处理知识熟悉的加深. 学习到了!!! 举个 栗子: svnlook  uuid  C:\R ...

  6. 【PAT甲级】1032 Sharing (25 分)

    题意: 输入两个单词的起始地址和一个正整数N(<=1e5),然后输入N行数据,每行包括一个五位数的字母地址,字母和下一个字母的地址.输出这两个单词的公共后缀首字母的地址,若无公共后缀则输出-1. ...

  7. UniGUI设置背景图片(09)

    主要是Background和LoginBackground属性, 类似地Login窗口背景图也可这样修改 UniServerModule.MainFormDisplayMode:=  mfPage;/ ...

  8. 01 MATLAB基本概念

    基本概念 整数类型 相同整数类型相乘还是整数 整数与浮点数相乘是这种整数类型 不同整数类型不能相乘,除非强制类型转换 整数与整数相乘: >> x = uint32(120); >&g ...

  9. JavaScript图形实例:正弦曲线

    正弦曲线的坐标方程为: Y=A*SIN(X)    (A为振幅) 1.正弦曲线 在弧度为0~4π的正弦曲线上取360个点,将这些点用线连接起来,可以绘制出正弦曲线.编写如下的HTML代码. <! ...

  10. Nginx多站点虚拟主机实现单独启动停止php-fpm、单独控制权限设置

    Nginx多站点虚拟主机实现单独启动停止php-fpm.单独控制权限设置 来源:osyunwei.com 作者:qihang01 发表于:2012-08-19 21:26 点击: 说明: 站点1:bb ...