java工具类-生成二维码并上传到阿里图片服务器

1.引入jar


        
            com.google.zxing
            core
            3.3.3
        
        
        
            com.google.zxing
            javase
            3.3.3
        

2.工具类

 /**
     * 传入文字生成二维码
     * @param content
     * @return
     */
    public static String GenerateQrCodeUtil(String content){
        String newImgUrl="";
        System.out.println(1234);
        final int width = 300;
        final int height = 300;
        final String format = "png";
      //  final String content = content;
        //定义二维码的参数
        HashMap hints = new HashMap();
        hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
        hints.put(EncodeHintType.MARGIN, 2);
        //生成二维码
        try{
            BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);
            Path file = new File("/img.png").toPath();
            MatrixToImageWriter.writeToPath(bitMatrix, format, file);
             //上传图片信息到阿里云
                    OSS client = OSSUtils.builderOSSClient();
                    StringBuilder name=new StringBuilder().append(UuidUtil.get32UUID());
                    try {
                        newImgUrl = OSSUtils.uploadFile(client,OSSUtils.TYPE_QRCODE,file.toFile(),name.toString());
                        System.out.println(newImgUrl);
                    } catch (Exception e) {
                        System.out.println("图片上传失败");
                        e.printStackTrace();
                    }

        }catch(Exception e){

        }
        System.out.println(newImgUrl);
        return newImgUrl;
    }

3.上传图片到图片服务器utils

  /**
     * 上传单个文件到OSS
     *
     * @param file    要上传的文件File对象
     * @param objName 上传后的文件名,包含文件夹,比如 game/game/test.txt
     * @return
     */
    public static String uploadFile(OSS client, String type, File file, String objName) throws Exception {
        ObjectMetadata meta = new ObjectMetadata();
        meta.setContentType("image/jpeg");
        String folder = StringUtils.EMPTY;
        if (type.equals(TYPE_IMG)) {
            folder = IMAGES_FOLDER;
        } else if (type.equals(TYPE_VIDEO)) {
            folder = VIDEOS_FOLDER;
        }else if(type.equals(TYPE_USER)){
            folder = USERIMG_FOLDER;
        }else if(type.equals(TYPE_QRCODE)){
            folder = QRCODEIMG_FOLDER;
        }
        client.putObject(BUCKET, folder + objName, file, meta);
        return "/"+folder + objName;
    }

其中:
以下部分为自定义常量

    public static final String TYPE_IMG = "IMG";
    public static final String TYPE_VIDEO = "VIDEO";
    public static final String TYPE_USER = "USER";

	/**
     * 视频存放文件夹
     */
    public static final String VIDEOS_FOLDER = MyConfiguration.create().getString("aliyun.oss.videosfolder");
	#存储文件夹 aliyun.oss.videosfolder=dev/videos/

你可能感兴趣的:(java工具类)