为什么80%的码农都做不了架构师?>>>   

jscanvas前端画图

 <canvas id="myCanvas" width="500" height="300"></canvas>unction DrawPic() {// Get the canvas element and its 2d contextvar Cnv = document.getElementById('myCanvas');var Cntx = Cnv.getContext('2d');// Create gradientvar Grd = Cntx.createRadialGradient(150, 150, 20, 140, 200, 330);Grd.addColorStop(0, "#c96513");Grd.addColorStop(1, "#861d33");// Fill with gradientCntx.fillStyle = Grd;Cntx.fillRect(0, 0, 500, 300);// Write some textfor (i=1; i<10 ; i++){Cntx.fillStyle = "white";Cntx.font = "36px Microsoft YaHei";Cntx.globalAlpha = (i-1) / 9;Cntx.fillText("jQuery之家-htmleaf.com", i * 3 , i * 30);}
}function UploadPic() {// generate the image datavar Pic = document.getElementById("myCanvas").toDataURL("image/png");// console.log(Pic);// Pic = Pic.replace(/^data:image\/(png|jpg);base64,/, "");// console.log(Pic);// Sending the image data to Server// $.ajax({//     type: 'POST',//     url: 'php.php',//     data: {imageData: 'Pic'  },//     dataType: 'json',//     success: function (msg) {//         alert("Done, Picture Uploaded."); //     }// });//    console.log(typeof Pic);// var test=Pic;$.post("url",{pic:Pic,uid:'1000000'},function(data){console.log(data);});

注意的代码

var Pic = document.getElementById("myCanvas").toDataURL("image/png");// console.log(Pic);Pic = Pic.replace(/^data:image\/(png|jpg);base64,/, "");
//正则去除前面的base64,但是没用到var Pic = document.getElementById("myCanvas").toDataURL("image/png");Pic是一个字符串 类型

函数代码

//文件上传
function base64_upload($base64) {$base64_image = str_replace(' ', '+', $base64);//post的数据里面,加号会被替换为空格,需要重新替换回来,如果不是post的数据,则注释掉这一行if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image, $result)){//匹配成功图片类型if($result[2] == 'jpeg'){$image_name = md5(uniqid()).'.jpg';}else{$image_name = md5(uniqid()).'.'.$result[2];}$dirpath=mk_dir();$image_file =$dirpath."/".$image_name;//服务器文件存储路径if (file_put_contents($image_file, base64_decode(str_replace($result[1], '', $base64_image)))){return $image_file;}else{return false;}}else{return false;}
}//创建文件目录
function mk_dir(){ $dir = date('Y-m-d', time()); $path="./Uploads/".$dir;if(is_dir($path)){  return $path;  }else{  mkdir($path,0777,true);  return $path;  }
}

头像逻辑

//base64文件上传和修改函数function userpic(){$pic=I('pic');$uid=I('uid');if(!$pic&&!$uid){$data=array('code'=>500,'msg'=>'参数错误');$this->ajaxReturn ( $data );      }else{$url=base64_upload($pic);$row=M('yxtuser')->where(array('uid'=>$uid))->find();//修改if($row&&$url){$data=array('uid'=>$uid,'uimg'=>$url,);   unlink($row['uimg']);if(M('yxtuser')->where(array('id'=>$row['id']))->save($data)){$info=array('data'=>$data,'status'=>array('code'=>200,'msg'=>'头像修改成功'));  $this->ajaxReturn ( $info );  }}//新增逻辑if($url&&$uid){$data=array('uid'=>$uid,'uimg'=>$url,);if($row=M('yxtuser')->add($data)){$info=array('data'=>$data,'status'=>array('code'=>200,'msg'=>'头像上传成功'));  $this->ajaxReturn ( $info );  }}     }//else end}//use

转载于:https://my.oschina.net/oneboi/blog/734538

base64文件上传后台处理相关推荐

  1. Antd多文件上传后台接收为null问题

    Antd多文件上传后台接收为null问题 在使用antd开发过程中,Upload组件的上传,一般是通过action配置后端接口地址,自动上传文件:但是当文件数量较多时,需要进行手动上传,但是手动上传后 ...

  2. httpclient base64 文件上传_文件上传下载

    说道文件上传下载,这个业务需求并不是很复杂思想如下 1.将文件上传到 某台服务器上的指定的路径下也可以这样理解 文件上传就是将本地图片发送到别的地方,下载就是将别的地方的图片放在本地 2.将路径同文件 ...

  3. Springboot+thymeleaf实现excel文件上传+后台数据搜索

    废话不多说,直接上代码 先说excel文件上传 用的是poi框架 先贴maven配置 <!-- poi导入excel文件--><dependency><groupId&g ...

  4. httpclient base64 文件上传_选择HttpClient还是OkHttp?

    来源:https://urlify.cn/IBbMRn 写在前面 为什么会写这篇文章,起因于和朋友的聊天 这又触及到我的知识盲区了,首先来一波面向百度学习,直接根据关键字httpclient和okht ...

  5. layui文件上传后台(带自定参数)

    记录layui文件上传方法,前端页面直接看layui文件上传相关文档就行,主要是记录后端Java接收上传流并保存的方法 layui文档:https://www.layui.com/doc/module ...

  6. 文件上传——后台上传文件并进行后缀名和大小限制

    实验环境:php 实验要求:仅能上传jpg格式的文件,且不得大于20K 实验步骤: 一.html代码如下: <!DOCTYPE html> <html lang="en&q ...

  7. httpclient base64 文件上传_代码级别的上传下载神器

    前言 不知道大家在工作中有没有碰到过在代码级别中进行上传和下载呢,一般的场景为调用第三方的接口进行上传大文件和下载大文件. 我一个小伙伴最近在工作中就碰到了,他需要在代码中调用第三方http接口进行原 ...

  8. 漏洞案例之z-blog后台文件上传

    z-blog后台文件上传 后台登录地址 php版本后台登录地址:你的域名/zb_system/login.php asp版本后台登录地址:后缀为/zb_system/login.asp zblogge ...

  9. struts2的文件上传和文件下载

    实现使用Struts2文件上传和文件下载: 注意点: (1)对应表单的file1和私有成员变量的名称必须一致 <input type="file" name="fi ...

最新文章

  1. Exchange20132016删除默认邮箱数据库及移动数据库路径
  2. 计量经济学建模_不了解计量经济学的前世今生,怎么能学会他
  3. android 读取文件相关
  4. spring boot 项目打成war包部署到服务器
  5. SAP Cloud Platform approuter的本地安装
  6. python生成固定长度随机数_python日记——random模块
  7. multisim连接MySQL_首次使用Multisim软件进行电路仿真设计
  8. ctk 组件创建 ui_创建可重复使用的UI组件的提示和技巧
  9. 中国连接系统市场趋势报告、技术动态创新及市场预测
  10. MYSQL生成日历表,通常在做报表的时候需要用来生成一个临时表,用来左连接等。...
  11. python学习笔记16--javascript总结
  12. VB.NET小程序:改变图片大小
  13. VB连接ACCESS数据库,使用 LIKE 通配符问题
  14. SwiftUI Button精品组件之完美的SwiftUI抖动按钮效果(教程含源码)
  15. 多云环境无处不在,但其管理才刚开始
  16. java——编程案例
  17. 服务器机房日常维护记录表,机房设备维护记录表
  18. IKEv2协议报文分片处理
  19. VLP-16第一课: Velodyne的工作原理和驱动安装
  20. CS5212替代RTD2166|低BOM成本替代RTD2166

热门文章

  1. 【Redis】16.Redis哨兵
  2. 解决Eclipse、Android Studio ADT AVD不能检测到手机
  3. Git本地分支版本过低导致的push错误 error: failed to push some refs to ... 及后续amend
  4. Unity3D学习笔记(七):叉乘和四元素
  5. 学JS的心路历程-Promise(一)
  6. MySQL缓存之Qcache与buffer pool对比
  7. ansible编译安装--操作系统环境Redhat6.4
  8. binutils工具集之---nm
  9. #define const typedef
  10. 设计模式:策略模式(Strategy)