package com.qunzhixinxi.hnqz.daemon.quartz.util;

import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.*;
import java.net.*;

public class FetchImgsUtil {
	/**
	 * 下载图片到指定目录
	 *
	 * @param filePath 文件路径
	 * @param imgUrl   图片URL
	 */
	public static String  downImages(String filePath, String imgUrl) {
		// 若指定文件夹没有，则先创建
		File dir = new File(filePath);
		if (!dir.exists()) {
			dir.mkdirs();
		}
		// 截取图片文件名
		String fileName = imgUrl.substring(imgUrl.lastIndexOf('/') + 1, imgUrl.length());

		try {
			// 文件名里面可能有中文或者空格，所以这里要进行处理。但空格又会被URLEncoder转义为加号
			String urlTail = URLEncoder.encode(fileName, "UTF-8");
			// 因此要将加号转化为UTF-8格式的%20
			imgUrl = imgUrl.substring(0, imgUrl.lastIndexOf('/') + 1) + urlTail.replaceAll("\\+", "\\%20");
			imgUrl= URLDecoder.decode(imgUrl, "UTF-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		// 写出的路径
		File file = new File(filePath + File.separator + fileName);

		try {
			// 获取图片URL
			URL url = new URL(imgUrl);
			// 获得连接
			URLConnection connection = url.openConnection();
			// 设置10秒的相应时间
			connection.setConnectTimeout(10 * 1000);
			// 获得输入流
			InputStream in = connection.getInputStream();
			// 获得输出流
			BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file));
			// 构建缓冲区
			byte[] buf = new byte[1024];
			int size;
			// 写入到文件
			while (-1 != (size = in.read(buf))) {
				out.write(buf, 0, size);
			}
			out.close();
			in.close();
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

		return filePath + File.separator + fileName;

	}
}