129 lines
4.3 KiB
Plaintext
129 lines
4.3 KiB
Plaintext
|
|
package com.sercurityControl.proteam.util;
|
|||
|
|
|
|||
|
|
import lombok.extern.slf4j.Slf4j;
|
|||
|
|
|
|||
|
|
import java.io.*;
|
|||
|
|
import java.net.URL;
|
|||
|
|
import java.net.URLConnection;
|
|||
|
|
import java.text.SimpleDateFormat;
|
|||
|
|
import java.util.Date;
|
|||
|
|
import java.util.List;
|
|||
|
|
import java.util.Map;
|
|||
|
|
|
|||
|
|
import static org.springframework.util.FileCopyUtils.BUFFER_SIZE;
|
|||
|
|
|
|||
|
|
@Slf4j
|
|||
|
|
public class DownLoadUtil {
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
public static void downFile(String filePath,String fileType){
|
|||
|
|
try{
|
|||
|
|
String savePath = "/data/vmw/queryDownload/"; // linux 系统路径
|
|||
|
|
String os = System.getProperty("os.name");
|
|||
|
|
|
|||
|
|
if (os.toLowerCase().startsWith("win")) {
|
|||
|
|
savePath = "D://files/queryDownload/";
|
|||
|
|
}
|
|||
|
|
// 构造URL
|
|||
|
|
URL url = new URL(filePath);
|
|||
|
|
// 打开连接
|
|||
|
|
URLConnection con = url.openConnection();
|
|||
|
|
//设置请求超时为20s
|
|||
|
|
con.setConnectTimeout(20 * 1000);
|
|||
|
|
//文件路径不存在 则创建
|
|||
|
|
File sf = new File(savePath);
|
|||
|
|
if (!sf.exists()) {
|
|||
|
|
sf.mkdirs();
|
|||
|
|
}
|
|||
|
|
//jdk 1.7 新特性自动关闭
|
|||
|
|
try (InputStream in = con.getInputStream();
|
|||
|
|
OutputStream out = new FileOutputStream(sf.getPath() + "\\" + "filename."+fileType)) {
|
|||
|
|
//创建缓冲区
|
|||
|
|
byte[] buff = new byte[1024];
|
|||
|
|
int n;
|
|||
|
|
// 开始读取
|
|||
|
|
while ((n = in.read(buff)) >= 0) {
|
|||
|
|
out.write(buff, 0, n);
|
|||
|
|
}
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}catch (Exception e){
|
|||
|
|
log.error(e.toString(),e);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
public static void DownLoadFile(String url ,String fileType){
|
|||
|
|
BufferedReader in=null;
|
|||
|
|
try{
|
|||
|
|
URL realUrl = new URL(url);
|
|||
|
|
// 打开和URL之间的连接
|
|||
|
|
URLConnection connection = realUrl.openConnection();
|
|||
|
|
// 设置通用的请求属性
|
|||
|
|
connection.setRequestProperty("accept", "*/*");
|
|||
|
|
connection.setRequestProperty("connection", "Keep-Alive");
|
|||
|
|
connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
|
|||
|
|
// 建立实际的连接
|
|||
|
|
connection.connect();
|
|||
|
|
// 获取所有响应头字段
|
|||
|
|
Map<String, List<String>> map = connection.getHeaderFields();
|
|||
|
|
// 遍历所有的响应头字段
|
|||
|
|
for (String key : map.keySet()) {
|
|||
|
|
System.out.println(key + "--->" + map.get(key));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
Date date = new Date();
|
|||
|
|
SimpleDateFormat dateFormat= new SimpleDateFormat("yyyyMMddhhmmss");
|
|||
|
|
|
|||
|
|
InputStream inputStream = connection.getInputStream();
|
|||
|
|
|
|||
|
|
String videoFiles = "/data/vmw/queryDownload/"; // linux 系统路径
|
|||
|
|
String os = System.getProperty("os.name");
|
|||
|
|
|
|||
|
|
if (os.toLowerCase().startsWith("win")) {
|
|||
|
|
videoFiles = "D://files/queryDownload/";
|
|||
|
|
}
|
|||
|
|
String filesPath = videoFiles + "pictureWebFile/" + dateFormat.format(date) + "." + fileType;
|
|||
|
|
File saveFile = new File(filesPath);
|
|||
|
|
//生成文件夹
|
|||
|
|
if (!saveFile.getParentFile().exists()) {
|
|||
|
|
saveFile.getParentFile().mkdirs();
|
|||
|
|
}
|
|||
|
|
FileOutputStream outputStream = new FileOutputStream(saveFile);
|
|||
|
|
byte[] buffer = new byte[BUFFER_SIZE];
|
|||
|
|
int bytesRead = -1;
|
|||
|
|
System.out.println("Receiving data...");
|
|||
|
|
while ((bytesRead = inputStream.read(buffer)) != -1) {
|
|||
|
|
outputStream.write(buffer, 0, bytesRead);
|
|||
|
|
}
|
|||
|
|
System.out.println("Data received.");
|
|||
|
|
outputStream.close();
|
|||
|
|
inputStream.close();
|
|||
|
|
// 定义 BufferedReader输入流来读取URL的响应
|
|||
|
|
in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));
|
|||
|
|
}catch (Exception e){
|
|||
|
|
System.out.println("发送GET请求出现异常!" + e);
|
|||
|
|
log.error(e.toString(),e);
|
|||
|
|
}
|
|||
|
|
finally {
|
|||
|
|
try {
|
|||
|
|
if (in != null) {
|
|||
|
|
in.close();
|
|||
|
|
}
|
|||
|
|
} catch (Exception e2) {
|
|||
|
|
e2.printStackTrace();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|