controller层获取图片数据调用upload方法

        String imagesUrl = null;//获取图片信息String imageBaseStr = reqData.getImageBaseStr();//获取上传路径(我这里用到的数据字典取得服务器路径)SysDictElement ele = rpcSysDictQuery.getSysDictElementByDictKeyAndEleKey("file_path", "file_path");//上传图片if (StringUtils.isNotBlank(imageBaseStr)) {String id = UUIDUtils.id(20);String fileKey = id;//图片路径  和nginx配置统一一下fileKey = "/"+ "guinness"+"/"  +"hb"+ "/" + id + ".jpg";}// 拼接图片地址:域名+路径   用于返回的图片地址imagesUrl = ele.getEleValue() + fileKey;// 调用图片上传接口  (将data:image/jpeg;base64,替换成"")String base64Str = imageBaseStr.replaceAll("data:image/jpeg;base64,", "");log.info("======图片上传后参数[{}]=====",base64Str);//限制文件大小(根据需要加或者不加)SysDictElement IsLimit = rpcSysDictQuery.getSysDictElementByDictKeyAndEleKeyAndLang("limit", "limit", "no");if ("yes".equals(IsLimit.getEleValue())){boolean isOver = greaterThanSize(base64Str, 5);if (isOver) {log.info("App图片==================================该文件超出5M");return;}}//上传图片调用腾讯上传方法String str = TencentCOSHelper.uploadFileBase64(base64Str, fileKey);log.info("App图片上传==================================测试str={}", str);if (StringUtils.isBlank(str)) {// 图片上传不成功log.info("图片上传不成功");code = "400";message = sysConfigHelper.valueOfSysDictElement(this.getName(), "400", "图片上传不成功");response.setMeta(AppResponseMeta.builder().code("400").success(false).message(message).build());return;}}

上传方法BASE64Decoder().decodeBuffer解码转换成流  上传

public static String uploadFileBase64(String base64Str,String fileKey) {String result="";cosClient=getClient();if(cosClient==null) {return result;}try {byte[] bytes = new BASE64Decoder().decodeBuffer(base64Str.trim());//转化为输入流ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes);ObjectMetadata objectMetadata = new ObjectMetadata();// 设置 Content type, 默认是 application/octet-streamobjectMetadata.setContentType("image/jpeg");//对象键(Key)是对象在存储桶中的唯一标识。  //例如,在对象的访问域名https://ba-189629.cos.ap-beijing.myqcloud.com/app/img/bb/profile_big.jpg        //则把key设为app/img/bb/profile_big.jpg  //云控制台目录//ba-189629-->app-->img-->bbPutObjectResult putObjectResult = cosClient.putObject(bucketName, "/app"+fileKey, inputStream, objectMetadata);result = putObjectResult.getETag();  // 获取文件的 etaglog.info("uploadFileBase64==result=======result:{}",result);//System.out.println(result);} catch (Exception e) {e.printStackTrace();//上传失败}finally {//关闭客户端(关闭后台线程)cosClient.shutdown();}return result;}

获取客户端信息

    private static COSClient cosClient =null;public static Properties properties;public static String bucketName;
public static COSClient getClient() {if (null == cosClient) {try {if(null==properties) {properties = PropertiesLoaderUtils.loadAllProperties("application.properties");}String secretId=properties.getProperty("tencent.secretId");String secretKey=properties.getProperty("tencent.secretKey");String region=properties.getProperty("tencent.region");//"ap-beijing"// 存储桶名称bucketName =properties.getProperty("tencent.bucketName");// 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKeyCOSCredentials cred = new BasicCOSCredentials(secretId, secretKey);ClientConfig clientConfig = new ClientConfig(new Region(region));cosClient = new COSClient(cred, clientConfig);} catch (IOException e) {e.printStackTrace();}}return cosClient;}

每次都忘记--记录一下

base64图片上传Java上传相关推荐

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

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

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

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

  3. java 微信开发图片发送,微信开发?Java上传Base64图片

    class="java">import org.apache.commons.codec.binary.Base64; import org.apache.log4j.Log ...

  4. ckeditor java 上传_CKEditor粘贴图片自动上传到服务器(Java版)

    环境:java,springmvc,ckeditor,tomcat,maven 情况:在做项目的时候发现本地图片粘贴到ckeditor中,img标签的src中的值是"data:image/p ...

  5. Java微信浏览器上传文件使用Base64方法(增加压缩上传方法)

            如果要兼容微信端的浏览器,需要将图片转化成Base64这种格式后,并传给服务器进行处理.如要注意一下几个方面.         1.只允许拍照的图片上传.     <input  ...

  6. Java教程:Java上传照片并转Base64编码

    今天要说的是Java上传照片并转Base64编码,简单直接点,技术含量低,示例代码 //图片MultipartHttpServletRequest multipartRequest = (Multip ...

  7. PHP上传方式base64图片的接收方式

    preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_img, $result) 匹配结果的第二个是图片的格式 file_put_conten ...

  8. java下传图片到tomcat服务器后,如何在页面显示,java图片上传服务器及客户端显示图片...

    我在上一篇文章SSM+Layui实现文件上传服务器中展示了如何将图片上传至服务器,保存到SQL server数据库中,本篇文章主要讲的是将图片上传到服务器上,保存在服务器的磁盘上,然后将图片路径保存到 ...

  9. java 上传图片后没法立马显示出来_SpringMVC多个文件上传及上传后立即显示图片功能...

    多文件上传就是改良一个方法把MultipartFile类换成CommonsMultipartFile类,因为上传多个文件用数组方式的话MultipartFile类不能初始化,它不支持数组 packag ...

最新文章

  1. 5G 标准 — 3GPP
  2. 设计模式之 Singleton 单例模式
  3. 关于一些知名深度学习模型的转换
  4. mysql复制状态是什么意思_mysql8 参考手册--复制从SQL线程状态
  5. Eclipse中Maven插件的使用技巧及原理
  6. flume1.8实现hdfsSink整点滚动文件
  7. TypeScript学习笔记(第一天)------创建简单的web应用
  8. automake 框架_[]GNU_Automake_中文.pdf
  9. Unity 修改asset store下载路径(win10)
  10. 安装绿色版本XShell6
  11. 终于找到了,中国知网免费下载论文诀窍!
  12. Stata实验——计算个股“上海机场“的市场模型和CAPM模型的β值
  13. C语言:由键盘任意输入1个整形数据(小于10亿,位数不限),将其倒置,如:输入12345,则输出54321。
  14. python68个内置函数_新手入门!68个Python内置函数建议收藏学习
  15. 自然摄影指南——第一章:曝光:校准你的测光表
  16. zjs-my-diary-20200609
  17. redis 的6种过期策略
  18. 腐蚀rust服务器命令_腐蚀Rust游戏指令大全 全游戏指令一览
  19. 转;三宫九观二十四坊——摘自苏州热线
  20. PTA 病毒感染检测 (15分)

热门文章

  1. 企业竞争中的三大经典公关案例分享!
  2. IOS 7 Xcode 5 免IDP证书 真机调试[ZT]
  3. 征信报告出现连三累六严重吗
  4. 综合案例的一些小总结
  5. 网络订餐行业分析-大众点评、饭统等
  6. 公民身份号码 校验码 检证程序
  7. Golang 垃圾回收
  8. ORACLE DATABASE 深度优先搜索的实例
  9. Python实现遥感生态指数计算
  10. 正则校验座机、手机号