1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3. include_once (APPPATH . "controllers/admin/Auth.php");
  4. include_once (APPPATH.'libraries/PicUpload.php');
  5. class goodsInfo extends Auth {
  6. //产品修改
  7. public function edit(){
  8. $tid=$this->newrow['tid'];
  9. //获取待修改的商品详细图片信息
  10. $ree['info']=$this->db->select('*')->from('goods_info')->where(array('tid'=>$tid))->get()->result_array();
  11. //根据id从硬盘上删除产品原图及缩略图和产品成分图片
  12. $pic=$this->db->select('ingredients,origin_pic,home_pic,product_cat_pic,detail_pic,cart_pic')
  13. ->from('goods_info')
  14. ->where(array('tid'=>$tid))
  15. ->get()
  16. ->result_array();
  17. $picture_upload=new PicUpload();
  18. if(!empty($this->newrow['origin_pic'])){
  19. unlink(OMG.ORIGIN.$pic[]['origin_pic']);
  20. unlink(OMG.HOME.$pic[]['home_pic']);
  21. unlink(OMG.PRODUCT.$pic[]['product_cat_pic']);
  22. unlink(OMG.DETAIL.$pic[]['detail_pic']);
  23. unlink(OMG.CART.$pic[]['cart_pic']);
  24.  
  25. $pic=$_POST['origin_pic'];
  26. //文件上传保存路径
  27. $image_file=OMG.ORIGIN;
  28.  
  29. $upload_url=$picture_upload->pUpload($pic,'pic2',$image_file);
  30. $origin_pic=$upload_url['url_pic'];
  31. $origin_thumb_pic=OMG.ORIGIN.$origin_pic;
  32. $thumb_name=$upload_url['pri'];
  33. if(!$upload_url){
  34. responseMsg ( , "图片上传失败!", null, , $this->prefix );
  35. $this->db->trans_rollback();
  36. return FALSE;
  37. }
  38.  
  39. for($i=;$i<;$i++){
  40. if($i==){
  41. $width = ;
  42. $height = ;
  43. //缩略后的保存路径
  44. $save_home_pic=OMG.HOME."{$thumb_name}.png";
  45. $home_pic="{$thumb_name}_thumb.png";
  46. //生成缩略图1
  47. //$origin_thumb_pic 要缩略的原图路径
  48. $this->dealthumb($origin_thumb_pic,$save_home_pic,$width,$height);
  49. }elseif($i==){
  50. $width = ;
  51. $height = ;
  52. //缩略后的保存路径
  53. $save_product_cat_pic=OMG.PRODUCT."{$thumb_name}.png";
  54. $product_cat_pic="{$thumb_name}_thumb.png";
  55. //生成缩略图2
  56. //$origin_thumb_pic 要缩略的原图路径
  57. $this->dealthumb($origin_thumb_pic,$save_product_cat_pic,$width,$height);
  58. }elseif($i==){
  59. $width = ;
  60. $height = ;
  61. //缩略后的保存路径
  62. $save_detail_pic=OMG.DETAIL."{$thumb_name}.png";
  63. $detail_pic="{$thumb_name}_thumb.png";
  64. //生成缩略图3
  65. //$origin_thumb_pic 要缩略的原图路径
  66. $this->dealthumb($origin_thumb_pic,$save_detail_pic,$width,$height);
  67. }else{
  68. $width = ;
  69. $height= ;
  70. //缩略后的保存路径
  71. $save_cart_pic=OMG.CART."{$thumb_name}.png";
  72. $cart_pic="{$thumb_name}_thumb.png";
  73. //生成缩略图4
  74. //$origin_thumb_pic 要缩略的原图路径
  75. $this->dealthumb($origin_thumb_pic,$save_cart_pic,$width,$height);
  76. }
  77. }
  78. }else {
  79. $origin_pic = $ree['info'][]['origin_pic'];
  80. $home_pic = $ree['info'][]['home_pic'];
  81. $product_cat_pic = $ree['info'][]['product_cat_pic'];
  82. $detail_pic = $ree['info'][]['detail_pic'];
  83. $cart_pic = $ree['info'][]['cart_pic'];
  84.  
  85. //添加图片1
  86. $pic = $_POST['ingredients'];
  87. //文件上传保存路径
  88. $image_file = OMG . INGREDIENTS;
  89. }
  90. responseMsg ( , "success",null, ,$this->prefix );
  91. }
  92. /*
  93. * 生成缩略图
  94. * @param $path 原图的本地路径
  95. * @param $newPath 缩略图存储路径
  96. */
  97. private function dealthumb($path,$newPath,$width,$height){
  98. $config['image_library'] = 'gd2';
  99. $config['source_image'] = $path;
  100. $config['new_image'] = $newPath;
  101. $config['create_thumb'] = TRUE;
  102. //生成的缩略图将在保持纵横比例 在宽度和高度上接近所设定的width和height
  103. $config['maintain_ratio'] = TRUE;
  104. $config['width'] = $width;
  105. $config['height'] = $height;
  106. //载入图像处理类库
  107. $this->load->library('Image_lib');
  108. $this->image_lib->initialize($config);
  109. $this->image_lib->resize();
  110. $this->image_lib->clear();
  111. }
  112. }

gmapi\framework\application\libraries\PicUpload.php

  1. <?php
  2. $file = substr( $_SERVER["SCRIPT_FILENAME"], , stripos($_SERVER["SCRIPT_FILENAME"], "framework") );
  3. require_once("{$file}/config.php");
  4. class PicUpload{
  5. /**
  6. * $pic $name $image_file
  7. */
  8. public function pUpload($pic,$name, $image_file){
  9. $url_pic=array();
  10. //上传图片
  11. if(!empty($pic)){
  12. $url_pic=$this->upload($pic,$name,$image_file);
  13. if(empty($url_pic)){
  14. return false;
  15. }
  16. }
  17. $url=array(
  18. url_pic=>$url_pic['image_name'],
  19. pri=>$url_pic['pri']
  20. );
  21. return $url;
  22.  
  23. }
  24. //字符串转图片
  25. private function upload($base64_image,$name,$image_file){
  26. $file_size=strlen($base64_image); //4.8kb 4925 8k
  27. // 验证文件条件是否符合
  28. if($file_size<= ){ # 未上传文件
  29. return false;
  30. }
  31. if($file_size>= ){ # 图片大于400KB,结束传输
  32. return false;
  33. }
  34. $base64_image = str_replace(' ', '+',$base64_image);//post
  35. if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image, $result)){
  36. //匹配成功
  37. if($result[] == 'jpeg'){
  38. $pri=date(YmdHis).$name;
  39. $image_name =$pri .'.png';
  40. }else{
  41. $pri=date(YmdHis).$name;
  42. $image_name =$pri.'.'.$result[];
  43. }
  44. $image_file_1="{$image_file}{$image_name}";
  45. //服务器文件存储路径
  46. //$image_file_1 要写入数据的文件。如果文件不存在,则创建一个新文件。
  47. //base64_decode(str_replace($result[1], '', $base64_image)) 要写入文件的数据。可以是字符串、数组或数据流。
  48. if(file_put_contents($image_file_1, base64_decode(str_replace($result[], '', $base64_image)))){
  49. $data['image_name'] = $image_name;
  50. $data['pri']=$pri;
  51. return $data;
  52. }else{
  53. return false;
  54. }
  55. }else{
  56. return false;
  57. }
  58. }
  59. }

图片上传--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. Python基础-3 输入输出

    输入输出 input输入函数 input函数:获取用户输入,保存成一个字符串.重要的话,说两遍,input函数的返回值是一个字符串类型.哪怕你输入的是个数字1,返回给你的只会是字符串"1&q ...

  2. LeetCode困难题(一)

    题目一: 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 示例 ...

  3. [运维] 如何在 Linux 上安装 Nginx 服务器(一)

    原因 因为小程序对素材的大小是由要求的, 所以为了简化小程序上的内存要求, 在Linux上安装nginx来作为静态资源服务器, 这篇为第一篇, 主要介绍怎么在Linux上安装nginx, 下一篇将会介 ...

  4. centos 访问win共享

    yum install samba 安装samba (其实我们只用到samba里面的winbind以便我们能够用windows机器的名称找到该机器的网络地址,在下面叙述的过程会用到.而且也要确定在 w ...

  5. SqlCommand的ExecuteReader方法----转载

    SqlCommand的ExecuteReader方法 原创 小道  2018-08-28 17:32:01  阅读 1353 次 评论 0 条 摘要: 用于执行查询语句,并返回一个DataReader ...

  6. window.onload 方法脚本

    //首先 创建一个函数 function windowOload(func){ var onLoad = window.onload; //如果window.onload没有绑定任何函数 则绑定该函数 ...

  7. SQL中limit的用法

    limit子句用于限制查询结果返回的数量 格式: select * from tableName limit i,n # tableName:表名 # i:为查询结果的索引值(默认从0开始),当i=0 ...

  8. 小程序的tabar顶部和底部导航的区别

    最近有人说小程序的底部tabar放在顶部会出现问题,那么先看看如何放在顶部吧:图片效果: 这里呢,在官方文档是有说明,tabbar 的属性设置里面有个position属性,position只支持bot ...

  9. matplotlib画图的时候显示不出中文和负号的解决办法

    import matplotlib.pyplot as pltfrom pylab import * plt.rcParams['font.sans-serif'] = ['SimHei'] #显示中 ...

  10. vue - 封装input

    input子组件 <el-input :value="value" placeholder="请输入内容" size="small" ...