URL图片上传到OSS服务器

版权声明:希望能和看到文章的你交个朋友 https://blog.csdn.net/u012954706/article/details/86523437

方案

先缓存到本地,再放到服务器

package com.duodian.youhui.admin.utils;

import com.duodian.youhui.admin.Exceptions.AppException;
import com.duodian.youhui.admin.constants.SystemParams;
import com.duodian.youhui.admin.utils.qCode.ImageUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.URL;

/**
 * 作者 :HealerJean
 * 日期 :2019/1/16  下午7:01.
 * 类描述:
 */
@Slf4j
@Service
public class ImageUploadUtils {


    /**
     * 先缓存到本地再上传到阿里云oss服务器
     * @param imgUrl
     * @return
     */
    public static String uploadUrlToAliyun(String imgUrl) {
        FileInputStream inputStream = null;
        FileOutputStream outputStream = null;
        File file = null ;
        try {

            //获取文件输出流
             file = new File(SystemParams.WECHAT_IMAGE_EMPT_URI+ StringGeneratorUtil.generate()+".jpg");
            outputStream = new FileOutputStream(file);

            //获取图片
            URL url = new URL(imgUrl);
            java.awt.Image imageTookit = Toolkit.getDefaultToolkit().createImage(url);
            BufferedImage bufferedImage = ImageUtils.toBufferedImage(imageTookit);

            //图片保存到本地流
            ImageIO.write(bufferedImage, "jpg", outputStream);

            //获取读流
            inputStream = new FileInputStream(file);

            //上传到阿里云服务器
            String fileLink = "admin/duodianyouhui/imgurl" + StringGeneratorUtil.generate() + ".jpg" ;
            OSSUploader.upload(fileLink,inputStream);


            // return SystemParams.OSS_HOST+ fileLink ;
            return  fileLink ;

        } catch (FileNotFoundException e) {
            throw  new AppException("文件流出错");
        }catch (Exception e){
            ExceptionLogUtils.log(e,ImageUploadUtils.class );
            throw  new AppException(e.getMessage());
        }finally { //关闭不必要的连接

            //图片生成将服务器文件删除
            if(file.exists()){
                file.delete();
            }
            try {
                if(inputStream!=null) {
                    inputStream.close();
                }if(outputStream!=null){
                    outputStream.close();
                }
                inputStream = null ; //关闭并置空
                outputStream = null; //关闭并置空
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

}






感兴趣的,欢迎添加博主微信,

哈,博主很乐意和各路好友交流,如果满意,请打赏博主任意金额,感兴趣的在微信转账的时候,备注您的微信或者其他联系方式。添加博主微信哦。


请下方留言吧。可与博主自由讨论哦

微信 微信公众号 支付宝
微信 微信公众号 支付宝

猜你喜欢

转载自blog.csdn.net/u012954706/article/details/86523437