依赖导入
com.google.zxingcore3.3.0com.google.zxingjavase3.0.0org.springframeworkspring-testRELEASEcom.yunpian.sdkyunpian-java-sdk1.2.7
自动生成二维码
package com.ujiol.common.util;import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile;import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.HashMap;
import java.util.UUID;//生成二维码/*** content 二维码内容*/
public class CreateQRCode {public static MultipartFile doCreateQRCode(String content) {int width = 300; //定义图片宽度int height = 300; //定义图片高度String format = "png"; //定义图片格式//定义二维码的参数HashMap hashMap = new HashMap();hashMap.put(EncodeHintType.CHARACTER_SET, "utf-8"); //设置编码hashMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M); //设置容错等级,等级越高,容量越小hashMap.put(EncodeHintType.MARGIN, 2); //设置边距//生成二维码try {//生成矩阵// 内容格式宽、高BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hashMap);System.out.println(bitMatrix);BufferedImage bufferedImage = MatrixToImageWriter.toBufferedImage(bitMatrix);//转换成为bufferimage//创建一个ByteArrayOutputStreamByteArrayOutputStream os = new ByteArrayOutputStream();//把BufferedImage写入ByteArrayOutputStreamImageIO.write(bufferedImage, format, os);//ByteArrayOutputStream转成InputStreamInputStream input = new ByteArrayInputStream(os.toByteArray());//InputStream转成MultipartFileUUID uuid = UUID.randomUUID();MultipartFile multipartFile = new MockMultipartFile(uuid + "", input);System.out.println(multipartFile);return multipartFile;} catch (Exception e) {e.printStackTrace();return null;}}
}
链接七牛云
package com.ujiol.common.util;import com.google.gson.Gson;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;/*** @Description: 七牛工具* @author liyijun* @date 2018/03/13*/
@Component
public class QiniuUtils {private static final String ACCESS_KEY = "*****************************";private static final String SECRET_KEY = "********************";public static final String ZTCM_ADVIDEO_BUCKET = "******";public static final String ZTCM_ADVIDEO_BUCKET_DOMAIN = "*******************";// 构造一个带指定Zone对象的配置类private static Configuration cfg = new Configuration(Zone.zone1());private static UploadManager uploadManager = new UploadManager(cfg);/*** 创建七牛上传令牌* * @param bucket* 仓库名称* @return String 上传令牌*/public static String buildUptoken(String bucket) {Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);String uptoken = auth.uploadToken(bucket);return uptoken;}/*** 上传文件* * @param file* 文件对象* @return String 文件链接(失败则返回null)*/public static String upload(MultipartFile file) {if (file != null && !file.isEmpty()) {try {InputStream stream = file.getInputStream();String key = UUID.randomUUID().toString() + getExtensionWithDot(file);String token = buildUptoken(ZTCM_ADVIDEO_BUCKET);String mime = file.getContentType();Response response = uploadManager.put(stream, key, token, null, mime);DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);String url = ZTCM_ADVIDEO_BUCKET_DOMAIN + putRet.key;return url;} catch (QiniuException ex) {ex.printStackTrace();} catch (IOException e) {e.printStackTrace();}}return null;}/*** 上传图片* * @param file* 文件对象* @return String 文件链接(失败则返回null)*/public static String uploadImg(MultipartFile file) {if (file != null && !file.isEmpty()) {try {InputStream stream = file.getInputStream();String key = UUID.randomUUID().toString() + getExtensionWithDot(file);String token = buildUptoken(ZTCM_ADVIDEO_BUCKET);String mime = file.getContentType();Response response = uploadManager.put(stream, key, token, null, mime);DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);String url = ZTCM_ADVIDEO_BUCKET + putRet.key;return url;} catch (QiniuException ex) {ex.printStackTrace();} catch (IOException e) {e.printStackTrace();}}return null;}public static String uploadImg(File file) {if (file != null) {try {String dot = file.getName().substring(file.getName().lastIndexOf("."));String key = UUID.randomUUID().toString() + dot;String token = buildUptoken(ZTCM_ADVIDEO_BUCKET);Response response = uploadManager.put(file, key, token);DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);String url = ZTCM_ADVIDEO_BUCKET + putRet.key;return url;} catch (QiniuException ex) {ex.printStackTrace();} catch (IOException e) {e.printStackTrace();}}return null;}/*** 删除图片文件* * @param key* 图片Key* @return boolean 是否成功删除* @throws IOException*/public static boolean delete(String key) {Response response = null;try {response = new BucketManager(Auth.create(ACCESS_KEY, SECRET_KEY), cfg).delete(ZTCM_ADVIDEO_BUCKET, key);} catch (QiniuException e) {e.printStackTrace();}return response != null ? response.isOK() : false;}/*** 获取文件扩展名* * @param file* 文件对象* @return String 扩展名(无效文件返回null)*/public static String getExtension(MultipartFile file) {if (file != null && !file.isEmpty()) {String extension = "";String fileName = file.getOriginalFilename();if (fileName.contains(".")) {extension = fileName.substring(fileName.lastIndexOf(".") + 1);}return extension;}return null;}/*** 获取文件扩展名加Dot* * @param file* 文件对象* @return String 扩展名(无效文件返回null)*/public static String getExtensionWithDot(MultipartFile file) {String extension = getExtension(file);if (extension != null && extension.length() > 0) {return "." + extension;}return extension;}}
测试单元接口
package com.ujiol.system.controller;import com.ujiol.common.util.CreateQRCode;
import com.ujiol.common.util.QiniuUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import java.util.UUID;@RestController
@RequestMapping("/refuel")
public class TestImage {@RequestMapping("/zz")public String doUpload(){MultipartFile multipartFile = CreateQRCode.doCreateQRCode(UUID.randomUUID()+"");String upload = QiniuUtils.upload(multipartFile);return upload;}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!