base64图片上传Java上传
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上传相关推荐
- base64图片转换file,并上传到阿里云
第一步:创建base64util package com.yuantu.util; import org.springframework.util.Base64Utils;/*** @author A ...
- base64图片解码生成图片,上传到指定服务器
问题 前端传来的base64截图,需要转换成图片,存储到fastdfs服务器 转换失败,生成的图片是空白的 解决 原因是生成的base64被拼接了一个头部,这个不是图片的一部分,转换时,是需要去掉的 ...
- java 微信开发图片发送,微信开发?Java上传Base64图片
class="java">import org.apache.commons.codec.binary.Base64; import org.apache.log4j.Log ...
- ckeditor java 上传_CKEditor粘贴图片自动上传到服务器(Java版)
环境:java,springmvc,ckeditor,tomcat,maven 情况:在做项目的时候发现本地图片粘贴到ckeditor中,img标签的src中的值是"data:image/p ...
- Java微信浏览器上传文件使用Base64方法(增加压缩上传方法)
如果要兼容微信端的浏览器,需要将图片转化成Base64这种格式后,并传给服务器进行处理.如要注意一下几个方面. 1.只允许拍照的图片上传. <input ...
- Java教程:Java上传照片并转Base64编码
今天要说的是Java上传照片并转Base64编码,简单直接点,技术含量低,示例代码 //图片MultipartHttpServletRequest multipartRequest = (Multip ...
- PHP上传方式base64图片的接收方式
preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_img, $result) 匹配结果的第二个是图片的格式 file_put_conten ...
- java下传图片到tomcat服务器后,如何在页面显示,java图片上传服务器及客户端显示图片...
我在上一篇文章SSM+Layui实现文件上传服务器中展示了如何将图片上传至服务器,保存到SQL server数据库中,本篇文章主要讲的是将图片上传到服务器上,保存在服务器的磁盘上,然后将图片路径保存到 ...
- java 上传图片后没法立马显示出来_SpringMVC多个文件上传及上传后立即显示图片功能...
多文件上传就是改良一个方法把MultipartFile类换成CommonsMultipartFile类,因为上传多个文件用数组方式的话MultipartFile类不能初始化,它不支持数组 packag ...
最新文章
- 5G 标准 — 3GPP
- 设计模式之 Singleton 单例模式
- 关于一些知名深度学习模型的转换
- mysql复制状态是什么意思_mysql8 参考手册--复制从SQL线程状态
- Eclipse中Maven插件的使用技巧及原理
- flume1.8实现hdfsSink整点滚动文件
- TypeScript学习笔记(第一天)------创建简单的web应用
- automake 框架_[]GNU_Automake_中文.pdf
- Unity 修改asset store下载路径(win10)
- 安装绿色版本XShell6
- 终于找到了,中国知网免费下载论文诀窍!
- Stata实验——计算个股“上海机场“的市场模型和CAPM模型的β值
- C语言:由键盘任意输入1个整形数据(小于10亿,位数不限),将其倒置,如:输入12345,则输出54321。
- python68个内置函数_新手入门!68个Python内置函数建议收藏学习
- 自然摄影指南——第一章:曝光:校准你的测光表
- zjs-my-diary-20200609
- redis 的6种过期策略
- 腐蚀rust服务器命令_腐蚀Rust游戏指令大全 全游戏指令一览
- 转;三宫九观二十四坊——摘自苏州热线
- PTA 病毒感染检测 (15分)