图片上传--base64
<?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的更多相关文章
- php图片上传base64数据编码。
/** * base64图片上传 */ function IdImg($base64_img = ''){ $up_dir = 'upload/';//存放在当前目录的upload文件夹下 if(!f ...
- 移动端图片上传base64编码
$base64 = "/9j/4AAQSkZJRgABAQEAkACQAAD/4QCMRXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAA ...
- ios base64图片上传失败问题
今天做图片上传,后台用的是base64解密图片二进制文件,以前都是用表单上传来解决图片上传的,现在后台没有人改,所以研究下base64上传. 需要将图片base64加密,但是调用 [data base ...
- 利用cropper插件裁剪本地图片,然后将裁剪过后的base64图片上传至七牛云空间
现在做的项目需要做一些图片处理,由于时间赶急,之前我便没有处理图片,直接将图片放在input[type=file]里面,以文件的形式提交给后台,这样做简直就是最低级的做法,之后各种问题便出来了,人物头 ...
- file标签 - 图片上传前预览 - FileReader & 网络图片转base64和文件流
记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...
- 前端上传 base64 编码图片到七牛云存储
参考文档 如何上传base64编码图片到七牛云 调试过程 文档中分别有 java 和 html 的 demo,可以根据文档示例调试. 下面是我调试的过程,可以作为参考,特别注意的是,如果需要给文件起名 ...
- tp5 base64 图片上传
/** * 保存图片 */ public function uploads($value='') { // $file = base64_decode(request()->file('imag ...
- js实现图片上传预览功能,使用base64编码来实现
实现图片上传的方法有很多,这里我们介绍比较简单的一种,使用base64对图片信息进行编码,然后直接将图片的base64信息存到数据库. 但是对于系统中需要上传的图片较多时并不建议采用这种方式,我们一般 ...
- ASP.NET Core 简单实现七牛图片上传(FormData 和 Base64)
ASP.NET Core 简单实现七牛图片上传(FormData 和 Base64) 七牛图片上传 SDK(.NET 版本):https://developer.qiniu.com/kodo/sdk/ ...
随机推荐
- 数字统计(0)<P2010_1>
数字统计 (two.pas/c/cpp) [问题描述] 请统计某个给定范围[L, R]的所有整数中,数字 2 出现的次数. 比如给定范围[2, 22],数字 2 在数2中出现了 1次,在数 12 ...
- SpringBoot与Lombok
Lombok 在项目中使用Lombok可以减少很多重复代码的书写.具体详细资料可以浏览 https://blog.csdn.net/motui/article/details/79012846 一.引 ...
- Tomcat认识
Tomcat目录结构: bin:存放启动和关闭的一些脚本 common:共享(部署在该服务器上的一些)jar包 conf:存放服务器的一些配置文件 webapps:部署文件 work:服务器运行时,产 ...
- SQL SERVER 语法汇总
一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...
- C# Lambda排序
1.按照多个字段进行排序:xxxList.OrderBy(c => c.RoadCode).ThenBy(c => c.Qdzh),表示先按照RoadCode字段进行排序再按照Qdzh字段 ...
- 开启Linux服务器vnc远程服务详细步骤
1.安装rpm包 ,如果没有这个包,请提前下载好,然后输入命令安装 yum localinstall /usr/local/tigervnc-server-1.1.0-24.el6.x86_64 ...
- 使用阿里云服务器配置frp实现Windows系统RDP内网穿透
1.frp服务器采用阿里云ecs的centos7.5系统,客户端是台windows10的系统,做一个RDP服务的内网穿透用. 2.首先下载frp到服务器(链接:https://github.com/f ...
- springboot RESTful Web Service
参考:http://spring.io/guides/gs/rest-service-cors/
- SpringMVC——SSM整合
1.环境要求: IDEA MySQL 5.1.19 Tomcat 9 Maven 3.6.1 2.数据库环境搭建 创建一个存放书籍的数据库表 CREATE DATABASE `ssmbuild`; U ...
- in comment after two dashes (--) next character must be > not - (position: START_TAG seen ...
Error executing Maven. in comment after two dashes (--) next character must be > not - (position: ...