<?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. 文本输入框UITextField和UITextView

    本文概要 1.简介 2.介绍TextField控件 3.介绍TextView控件 4.键盘的打开和关闭 5.关闭和大开键盘的通知 6.键盘的种类 详情 1.简介 与Label一样,TextField和 ...

  2. java动态代理中的invoke方法是如何被自动调用的

    转载声明:本文转载至 zcc_0015的专栏 一.动态代理与静态代理的区别. (1)Proxy类的代码被固定下来,不会因为业务的逐渐庞大而庞大:(2)可以实现AOP编程,这是静态代理无法实现的:(3) ...

  3. openstack搭建之旅(原创)

    1.什么是openstack是一个集中管理虚拟机的平台,整合了各种虚拟化的技术.虚拟机的具体创建交给具体的虚拟化技术实现,而Openstack是整合这些虚拟化技术,提供一个统一管理的视图,对虚拟机进行 ...

  4. linux服务器自动备份与删除postgres数据库数据

    1.先创一个back.sh 文件,授权,然后在下面这个文件添加脚本 export PGPASSWORD='123456'        #这是登录服务器密码cur_time=`date +%Y%m%d ...

  5. python爬虫(六) Cookie

    什么是Cookie 在网站中,http的请求通常是无状态的(第一个和服务器连接并且登录之后,此时服务器知道是哪个用户,但是当第二次请求服务器时,服务器依然不知道当前请求的是哪个用户),cookie就是 ...

  6. Android音频录制MediaRecorder之简易的录音软件实现代码(转)

    原文:http://www.jb51.net/article/46182.htm Android音频录制MediaRecorder之简易的录音软件实现代码 这篇文章主要介绍了Android音频录制Me ...

  7. VScode小白简介

    前言   现在使用Vscode编码的人越来越多,凭借着免费,开源,轻量,跨平台的特点收货了一大批忠实粉丝 最近因项目需要开始使用Vscode,但不知为何,感觉有点力不从心,不知道该怎么用 首先想到去官 ...

  8. 「POI2011」Meteors

    「POI2011」Meteors 传送门 整体二分,树状数组实现区间修改单点查询,然后注意修改是在环上的. 参考代码: #include <cstdio> #include <vec ...

  9. alerm和pause

    pause函数,会让进程进入阻塞状态,收到信号时,会中断这个阻塞的系统调用 alerm(s),会设置进程闹钟,在指定的时间后,进程会收到SIG_ALERM信号,收到这个信号时,可以中断pause阻塞调 ...

  10. 简单讲解什么是黑帽SEO

    此文章主要讲的是黑帽SEO之搜索引擎劫持: SEO(Search Engine Optimization)搜索引擎优化,简单来说,就是让网站的排名更高,比如,搜索"博客"这个关键字 ...