base64 编码转化图片并进行指定路径的保存和上传处理

https://blog.csdn.net/u011415782/article/details/79978608
https://blog.csdn.net/qq_38381336/article/details/77943377
https://blog.csdn.net/yayayangge/article/details/83654464

解决 fakepath

https://blog.csdn.net/weixin_39762926/article/details/79610154

页面 html 中

 <form class="form-horizontal m-t" method="post" enctype="multipart/form-data" action="#"><div class="row"><div class="col-md-6"><div class="image-crop" style="margin-bottom:-20px;"><img class="img-circle" style="width:64px;height:64px;" src="{$avatar}"></div></div><div class="col-md-6" style="margin-top:70px;margin-left:10px;"><h4>图片预览:</h4><div class="btn-group"><label title="上传图片" for="inputImage" class="btn btn-primary"><!-- 方法1 --><img name="image" id="myimage" src="" style="width:80px;height:100px;margin-left:-175px;margin-bottom:20px;"/><input id="files" name="avatar" type="file" value="选择" onchange="changeImge(this)"><input id="successimg" type="hidden" value="" ></label></div></div></div><p></p><label><button class="btn btn-primary-red" id="edit" type="submit">提交</button></label></form>

js

<script>function changeImge(obj) {var f = obj.files[0];var filePath = obj;var type = f.type;     //image/jpegvar size = f.size;var tp = type.split("/")[0];if (tp != "image" || size > 10*1024*1024){alert("请选择图片-10MB内!")return false;}var element = document.getElementById('myimage');if (filePath != null && filePath != "") {//获取文件路径element.src = window.URL.createObjectURL(obj.files[0]);    // 这个函数用来预览本地图片或者视频// 用下面的两个方法,可以把blob图片格式转成base64图片格式,https://www.zhaokeli.com/article/8055.htmlvar blobToBase64=function(blob, callback) {var a = new FileReader();a.onload = function(e) {callback(e.target.result);}a.readAsDataURL(blob);};//使用方法,传入一个blob数据,在回调中接收处理成功的图片urlblobToBase64(obj.files[0], function(data) {// $('#successimg img').attr('src', data);   // 赋值$('#successimg').val(data);   // 赋值});}
}// 获取 图片地址$('#edit').on('click', function(){var img = $("#successimg").val();   // base64 格式$.ajax({type: 'POST',url:  "/admin/user/save_avatar",data: {url: img},dataType: 'json',success: function(data){if (data.status == 1) {alert("编辑成功");} else {// alert(222);alert("编辑失败");}}});
})// blob 转化成 base64
// function blobToDataURL(blob) {
//         var a = new FileReader();
//         a.readAsDataURL(blob);//读取文件保存在result中
//         a.onload = function (e) {
//         var getRes = e.target.result;//读取的结果在result中
//         }
//  }</script>

控制器中

// 获取新上传的头像public function save_avatar(){// $file = request()->file("avatar");    $data = $_POST;$base64_image_content = $data['url'];$path = $_SERVER['DOCUMENT_ROOT'].'/static/imgs';    // 上传到的文件夹//匹配出图片的格式,将Base64图片转换为本地图片并保存if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)){$type = $result[2];$new_file = $path."/".date('Ymd',time())."/";if(!file_exists($new_file)){//检查是否有该文件夹,如果没有就创建,并给予最高权限mkdir($new_file, 0700);}$new_file = $new_file.time().".{$type}";if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){// "\/E:\/phpstudy2018\/PHPTutorial\/WWW\/h_layui\/public\/static\/imgs\/20191018\/1571384359.jpeg"// return '/'.$new_file;// 修改数据库  sp_admin$udata = session::get('USER_INFO');$uid = $udata['uid'];$where['id'] = $uid;$new = explode('public',$new_file);$bb['touxiang'] = $new[1];$res =  DB::name('admin')->where($where)->update($bb);if($res){$rs=json(1); }else{$rs=json(0); }return $rs;}else{return false;}}else{return false;}die;
}

JS之 解决fakepath问题,并实现base64图片上传(单图上传)相关推荐

  1. java itext html转PDF解决中文无法显示以及base64图片处理

    文章目录 一.添加maven依赖 二.处理中文不显示问题 三.处理HTML文件中Base64格式图片不显示问题 四.封装工具类 一.添加maven依赖 <dependency><gr ...

  2. base64图片解码生成图片,上传到指定服务器

    问题 前端传来的base64截图,需要转换成图片,存储到fastdfs服务器 转换失败,生成的图片是空白的 解决 原因是生成的base64被拼接了一个头部,这个不是图片的一部分,转换时,是需要去掉的 ...

  3. base64图片转换file,并上传到阿里云

    第一步:创建base64util package com.yuantu.util; import org.springframework.util.Base64Utils;/*** @author A ...

  4. vue js中解决二进制转图片显示问题

    一:问题 工作中碰到的问题,在处理接口返回的验证码图片时,由于返回的是encode编码代码,在js端获取到数据之后,通过函数encodeURI()来进行解码,之后可以通过在src中设置来实现图片显示: ...

  5. webpack打开项目命令_配置webpack中dev.env.js、prod.env.js,解决不同命令下项目启动和打包到指定的环境...

    前后端分离的项目开发中,我们有开发环境.测试环境.预生产环境和生产环境. 1.开发环境下调试接口的时候,一般都会有好几个接口地址(开发服务器上的,本地的,接口开发人员的,七七八八的接口地址),要根据情 ...

  6. 加mp4文件后js失效_Jquery方法load之后导致js失效解决方法

    Jquery方法load之后导致js失效解决方法 >>>>>>>>>>>>>>>>>>> ...

  7. IE6下使用jquery.bgiframe.js插件解决下拉框覆盖浮动层、Dialog的问题

    IE6下使用jquery.bgiframe.js插件解决下拉框覆盖浮动层.Dialog的问题 参考文章: (1)IE6下使用jquery.bgiframe.js插件解决下拉框覆盖浮动层.Dialog的 ...

  8. [转] js前端解决跨域问题的8种方案(最新最全)

    [转] js前端解决跨域问题的8种方案(最新最全) 参考文章: (1)[转] js前端解决跨域问题的8种方案(最新最全) (2)https://www.cnblogs.com/chris-oil/p/ ...

  9. 利用PDF.JS插件解决了本地pdf文件在线浏览问题(根据需要隐藏下载功能,只保留打印功能)

    利用PDF.JS插件解决了本地pdf文件在线浏览问题(根据需要隐藏下载功能,只保留打印功能) 参考文章: (1)利用PDF.JS插件解决了本地pdf文件在线浏览问题(根据需要隐藏下载功能,只保留打印功 ...

  10. npm突然找不到D:\nodejs\node_modules\npm\bin\npm-cli.js的解决方法

    npm突然找不到D:\nodejs\node_modules\npm\bin\npm-cli.js的解决方法 参考文章: (1)npm突然找不到D:\nodejs\node_modules\npm\b ...

最新文章

  1. redis 突然大量逐出导致读写请求block
  2. SVN中如何创建共享文件夹
  3. linux下安装QQ(转载)
  4. Android 短信模块分析(四) MMS之短信的发送与接收
  5. 用 Python 读写 Excel 表格,就是这么的简单粗暴且乏味
  6. Shell 扩展的分类
  7. 【信息系统项目管理师】第10章 下篇-项目干系人管理 知识点详细整理
  8. Python 中缀表达式转换后缀表达式
  9. mysql实现分布式锁_数据库实现分布式锁
  10. ThinkPHP2.1 增加PHPCMS模板引擎,支持PC标签(get,json)
  11. 笔记本电脑亮度突然无法用快捷键调节
  12. 数据库文件的存放位置
  13. mmdetection2.24.1修改backbone(使用mmcls和timm已有模型)
  14. css中如何使div元素居中垂直水平居中
  15. 一文彻底看懂LightGBM
  16. 为什么要用PolyFill(JS中的修补匠)
  17. 准确率、精确率、召回率、F1-score
  18. 售前售后问题(甲润)
  19. 20条职场潜规则!小心那些城府很深的人(建议收藏)
  20. Java编程随机发红包,红包随机算法Java实现

热门文章

  1. android qq毛玻璃,如何快速做出毛玻璃背景?有了这个网格渐变神器,1分钟搞定...
  2. 你的脑容量(字符串问题,小技巧)
  3. 统计学中p值计算公式_统计学中的p值怎么算,具体步骤
  4. 真值表-Python实现
  5. 新鲜出炉的2019年最受期待的10大区块链游戏
  6. matlab多行注释的三种方法
  7. linux下的几种文本去重方法
  8. 模糊C均值聚类算法及实现
  9. 软件项目开发与管理(单代号网络图参考例题)
  10. 2022蓝桥杯你值得拥有