Java直接将图片下载指定地点

前言
最近做了一个微信小程序登录绑定,并将微信头像图片下载到服务器,写完了,所以就想记录下来
因为小程序微信登录获取的信息中含有头像的url,所以写个工具方法

开发准备

1.其实也没啥准备的,只要能用Java开发就Ok

 @Value("${upload.original.url}")
 public  String uploadOriginalUrl;
 
 @Value("${upload.thumbnails.url}")
 public  String uploadThumbnailsUrl;
 
 public ResultResponse download(String imageUrl) {
        Calendar c = Calendar.getInstance();
        StringBuilder destFolder = new StringBuilder(); //文件夹名称
        try {
            imageUrl = imageUrl.trim();
            destFolder.append("account").append("/").append(c.get(Calendar.YEAR)).append("/").append(c.get(Calendar.MONTH) + 1).append("/").
                    append(c.get(Calendar.DAY_OF_MONTH)).append("/");

            String rootUrl = uploadOriginalUrl + destFolder.toString();
            System.out.println(!new File(rootUrl).exists());
            if (!new File(rootUrl).exists()) {//检测生成路径
                new File(rootUrl).mkdirs();
            }

            String imgFile = imageUrl.substring(imageUrl.lastIndexOf("/"), imageUrl.length());
            //上传文件类型
            String fileSuffix = imageUrl.substring(imageUrl.lastIndexOf(".") + 1, imageUrl.length());
            if (!fileSuffix.contains(".")) {
                fileSuffix = ".jpg";
            }
            //目标文件名
            String targetName = c.getTime().getTime() + ".jpg";

            String urlImage = rootUrl + "/" + targetName;

            // String urlImage=destFolder + "/" + imgFile+".jpg";
            File jpgFile = new File(urlImage);
            /*-------------------------以上是生成一个唯一的图片空文件------------------------*/
            URL url = new URL(imageUrl);
            // 打开连接
            URLConnection con = url.openConnection();
            // 输入流
            InputStream is = con.getInputStream();
            // 1K的数据缓冲
            byte[] bs = new byte[1024];
            // 读取到的数据长度
            int len;
            // 输出的文件流
            OutputStream os = new FileOutputStream(jpgFile);
            // 开始读取
            Integer fileSize = 0;
            while ((len = is.read(bs)) != -1) {
                os.write(bs, 0, len);
                fileSize += len;
            }
            // 完毕,关闭所有链接
            os.close();


            //生成图片压缩文件夹操作
            String ysUrl = uploadThumbnailsUrl + destFolder;
            if (!new File(ysUrl).exists()) {//检测生成路径
                new File(ysUrl).mkdirs();
            }
            //压缩
            ImgZipUtil.zipImageFile(urlImage, ysUrl + targetName, 80, 80, 0);
            /*-------------------------完成图片下载的服务器------------------------*/
         

            return ResultResponse.wrap(IfConstant.SERVER_SUCCESS);
        } catch (Exception e) {

            return ResultResponse.wrap(IfConstant.UNKNOWN_ERROR);
        }
    }

Ok

你可能感兴趣的:(java)