图片上传--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/ ...
随机推荐
- Python基础-3 输入输出
输入输出 input输入函数 input函数:获取用户输入,保存成一个字符串.重要的话,说两遍,input函数的返回值是一个字符串类型.哪怕你输入的是个数字1,返回给你的只会是字符串"1&q ...
- LeetCode困难题(一)
题目一: 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 示例 ...
- [运维] 如何在 Linux 上安装 Nginx 服务器(一)
原因 因为小程序对素材的大小是由要求的, 所以为了简化小程序上的内存要求, 在Linux上安装nginx来作为静态资源服务器, 这篇为第一篇, 主要介绍怎么在Linux上安装nginx, 下一篇将会介 ...
- centos 访问win共享
yum install samba 安装samba (其实我们只用到samba里面的winbind以便我们能够用windows机器的名称找到该机器的网络地址,在下面叙述的过程会用到.而且也要确定在 w ...
- SqlCommand的ExecuteReader方法----转载
SqlCommand的ExecuteReader方法 原创 小道 2018-08-28 17:32:01 阅读 1353 次 评论 0 条 摘要: 用于执行查询语句,并返回一个DataReader ...
- window.onload 方法脚本
//首先 创建一个函数 function windowOload(func){ var onLoad = window.onload; //如果window.onload没有绑定任何函数 则绑定该函数 ...
- SQL中limit的用法
limit子句用于限制查询结果返回的数量 格式: select * from tableName limit i,n # tableName:表名 # i:为查询结果的索引值(默认从0开始),当i=0 ...
- 小程序的tabar顶部和底部导航的区别
最近有人说小程序的底部tabar放在顶部会出现问题,那么先看看如何放在顶部吧:图片效果: 这里呢,在官方文档是有说明,tabbar 的属性设置里面有个position属性,position只支持bot ...
- matplotlib画图的时候显示不出中文和负号的解决办法
import matplotlib.pyplot as pltfrom pylab import * plt.rcParams['font.sans-serif'] = ['SimHei'] #显示中 ...
- vue - 封装input
input子组件 <el-input :value="value" placeholder="请输入内容" size="small" ...