JAVA生成二维码并上传至阿里云

pom依赖

  <dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.0</version></dependency><dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.0.0</version></dependency>
   JSONObject qrInfo = new JSONObject(); //二维码内容qrInfo.put("schoolId", schoolId);qrInfo.put("ID",123);qrInfo.put("time", ThreadLocalUtils.dateFormat().format(new Date()));int width = 300;int height = 300;String format = "png";String contents = qrInfo.toJSONString();BitMatrix bm = new MultiFormatWriter().encode(contents, BarcodeFormat.QR_CODE, width, height);File  file = new File("/tmp/"+ UUID.randomUUID().toString()); //保存路径Path path = file.toPath();MatrixToImageWriter.writeToPath(bm, format, path); //输出图像//将图片文件转化为字节数组字符串,并对其进行Base64编码处理InputStream inputStream = null;byte[] buffer = null;//读取图片字节数组try {inputStream = new FileInputStream(file);int count = 0;while (count == 0) {count = inputStream.available();}buffer = new byte[count];inputStream.read(buffer);} catch (IOException e) {e.printStackTrace();} finally {if (inputStream != null) {try {// 关闭inputStream流inputStream.close();} catch (IOException e) {e.printStackTrace();}}}// 对字节数组Base64编码String encode = Base64.getEncoder().encodeToString(buffer);return faceComponent.upload2(encode); 
    //人脸上传public String upload2(String baseString) throws Exception{if(baseString.isEmpty()){throw new Exception("对象不可为空");}String image = null;//上传照片byte[] bytes = Base64.getDecoder().decode(baseString);image = AliOSSUtil.upload(new ByteArrayInputStream(bytes));if (image!=null){image= "https://exuecloud.oss-cn-hangzhou.aliyuncs.com/"+ image +"?x-oss-process=style/thumb_1200_auto";}else {image = "";}return image;}
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.GetObjectRequest;
import com.aliyun.oss.model.ObjectMetadata;
import com.aliyun.oss.model.PutObjectResult;
import org.slf4j.LoggerFactory;
import org.springframework.web.multipart.MultipartFile;import java.io.File;
import java.io.InputStream;
import java.util.Date;public class AliOSSUtil {private final static org.slf4j.Logger logger = LoggerFactory.getLogger(AliOSSUtil.class);private static String END_POINT         = "oss-cn-hangzhou.aliyuncs.com";private static String ACCESS_KEY_ID     = ""; //阿里云账号private static String ACCESS_KEY_SECRET = "";private static String BUCKET_NAME       = "";//文件存储目录private static String FILE_DIR           = "mc-upload/";/*** 上传文件外部调用方法* @param file* @return 返回文件名,包含文件夹* @throws Exception*/public static String upload(MultipartFile file) throws Exception{//获取文件原始名称String originalName = file.getOriginalFilename();//获取文件扩展名(如:.jpg)String extendName = originalName.substring(originalName.lastIndexOf(".")).toLowerCase();//重命名文件保存名称String fileName = DateUtil.formatDate(new Date(),"yyyyMMddHHmmss") + UUIDUtil.getRandomNumber(4) + extendName;//获取文件数据流InputStream inputStream = file.getInputStream();//上传文件return upload(inputStream, fileName);}/*** 上传文件流* @param inputStream 输入数据流* @return 返回文件名,包含文件夹* @throws Exception*/public static String upload(InputStream inputStream) throws Exception{//重命名文件保存名称String fileName = DateUtil.formatDate(new Date(),"yyyyMMddHHmmss") + UUIDUtil.getRandomNumber(4) + ".jpg";return upload(inputStream, fileName);}/*** 上传文件流* @param inputStream 输入数据流* @param fileName 文件名* @return 返回文件名,包含文件夹* @throws Exception*/public static String upload(InputStream inputStream, String fileName) throws Exception{//创建上传Object的MetadataObjectMetadata objectMetadata = new ObjectMetadata();objectMetadata.setContentLength(inputStream.available());objectMetadata.setCacheControl("no-cache");objectMetadata.setHeader("Pragma", "no-cache");objectMetadata.setContentDisposition("inline;filename=" + fileName);// 创建OSS客户端OSSClient ossClient = new OSSClient(END_POINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET);//上传文件PutObjectResult putResult = ossClient.putObject(BUCKET_NAME, FILE_DIR + fileName, inputStream, objectMetadata);//关闭数据流if (inputStream != null) {inputStream.close();}// 关闭clientossClient.shutdown();if(null != putResult){return FILE_DIR + fileName;}else{throw new Exception("文件上传失败");}}/*** 下载文件* @param objectName* @throws Exception*/public static void download(String objectName, String fileName) throws Exception {// 创建OSSClient实例。OSSClient ossClient = new OSSClient(END_POINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET);// ossObject包含文件所在的存储空间名称、文件名称、文件元信息以及一个输入流。
//        OSSObject ossObject = ossClient.getObject(BUCKET_NAME, objectName);
//        BufferedReader reader = new BufferedReader(new InputStreamReader(ossObject.getObjectContent()));
//        while (true) {//            String line = reader.readLine();
//            if (line == null) break;
//        }
//        System.out.println("reader.lines()==="+reader.lines());
//        // 数据读取完成后,获取的流必须关闭,否则会造成连接泄漏,导致请求无连接可用,程序无法正常工作。
//        reader.close();ossClient.getObject(new GetObjectRequest(BUCKET_NAME, objectName), new File(fileName));// 关闭OSSClientossClient.shutdown();}/*** 删除文件* @param objectName*/public static void delete(String objectName){// 创建OSSClient实例。OSSClient ossClient = new OSSClient(END_POINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET);// 删除文件。ossClient.deleteObject(BUCKET_NAME, objectName);// 关闭OSSClient。ossClient.shutdown();logger.info("文件删除成功:[{}]", objectName);}public static void main(String[] args) {//        delete("test/DSCF2919.JPG");try {download("upload/11113333.png", "C:\\Users\\liu22\\Desktop\\zhifu-web-20190404-测试\\download11123333.png");} catch (Exception e) {e.printStackTrace();}}
}

https://exuecloud.oss-cn-hangzhou.aliyuncs.com/mc-upload/202205170940041480.jpg?x-oss-process=style/thumb_1200_auto

JAVA实现生成原生二维码并上传至阿里云相关推荐

  1. Java生成微信小程序二维码、上传至阿里云OSS

    依赖 <!-- 阿里云oss依赖 --><dependency><groupId>com.aliyun.oss</groupId><artifac ...

  2. Java zxing生成vcard二维码名片

    一)背景 最近想做个vcard个人名片的二维码,从网上查了相关在线生成二维码功能,也能实现功能.但自己因为想用java的方式来实现,网上最多的案例都是依赖zxing jar实现,但由于要生成统一的vc ...

  3. java后台实现生成二维码并且上传的详细介绍

    个人博客传送门 今天又遇到了新的问题,就是后台需要生成一个二维码,以前从来没有做过这个二维码,通过上午的努力,总算是完成了,希望有兴趣的可以一起交流学习.我用的是google.zxing的这个插件来完 ...

  4. java后台生成微信二维码,打不开图片

    访问微信接口生成二维码图片后,打开二维码图片显示不支持此格式.我这边问题解决1.参数"scene"必传且不能修改成其他字段.2.路径中"\"替换成"/ ...

  5. Java常见应用——Json,二维码生成,加密解密应用

    Java常见应用--Json,二维码生成,加密解密应用 一.JSON 1.下载json架包,json官网:json.org 2.将Map/JavaBean/String转化成json对象,只需要使用J ...

  6. 苹果原生二维码生成与扫描及生成的二维码不清楚的解决方案

    苹果原生二维码生成与扫描及生成的二维码不清楚的解决方案 参考文章: (1)苹果原生二维码生成与扫描及生成的二维码不清楚的解决方案 (2)https://www.cnblogs.com/CoderEYL ...

  7. java+vue的二维码生成,二维码上传服务器,二维码的压缩包下载

    一. vue页面生成二维码 <template><div class="app-container">//在页面放着二维码的div<div id=&q ...

  8. Java生成解析二维码

    Java生成二维码 一.介绍 1. 理解二维码 黑点代表二进制中的1,白点代表二进制中的0,通过1和0的排列组合,在二维空间记录数据.通过图像输入设备,读取其中的内容. 2. 二维码分类 二维码有不同 ...

  9. iOS 原生二维码扫描和生成

    代码地址如下: http://www.demodashi.com/demo/12551.html 一.效果预览: 功能描述:WSLNativeScanTool是在利用原生API的条件下封装的二维码扫描 ...

最新文章

  1. Javascript调试技巧整理
  2. 你真的会写二分查找吗?
  3. SQL Server开发者Oracle快速入门
  4. andriod 继承view定义自己的形状
  5. HTML边框百分比,CSS:以百分比和边框表示的宽度
  6. android 隐藏键盘时ui延迟恢复,android 软键盘的显示与隐藏问题的研究
  7. 我愿意参加Qcon 2010大会,你愿意吗?
  8. Log4j2进阶使用(Pattern Layout详细设置)
  9. Ruby设计模式透析之 —— 策略(Strategy)
  10. jQuery Mobile中对话框dialog的data-*选项
  11. 《FLUENT 14.0超级学习手册》——3.2 Gambit的应用
  12. Echarts 3使用
  13. Navicat Premium相关注册码
  14. TX2入门(10)——TensorRT(1)(tx2端inference)
  15. 人工智能和5G在无人机技术中的作用
  16. vscode设置不显示某些文件或文件夹
  17. Excel_利用公式提取工作表的名称
  18. python听歌识曲爬虫_Python爬取网易云音乐热门评论的搜索结果-阿里云开发者社区...
  19. DFS应用:纵火犯题解
  20. LeetCode 初级 - 买卖股票的最佳时机

热门文章

  1. Uniapp进行App云打包—安卓Android端
  2. 导出word功能,用html代码在word中插入分页符
  3. mobi转为html,MOBI to HTML
  4. win7右键 windows资源管理器已停止完美解决
  5. 微信小程序----全局状态管理 (便于全局埋点等操作)
  6. clickhouse 在货拉拉的应用实践,千亿级别数据实现秒级查询
  7. 【对比】Office 365与Office 2019 有何不同?你会pick哪款产品?
  8. Android多点触控详解
  9. 机器学习(算法篇)——K-近邻算法
  10. 基于android的无人健身房