/**
* 下载文件到指定目录
*
* @param dowUrl http地址
*/
@ResponseBody
@RequestMapping("/downloadVideo")
public String downloadVideo(String dowUrl) {
try {
//TODO-Anhk 2020/8/11 此方法是个测试demo 具体的还没有写
//设置下载路径
URL url = new URL(dowUrl);
//打开链接,获取连接对象并转换成http的连接对象
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
//设置超时时间
urlConnection.setConnectTimeout(1000 * 5);
//设置请求方式为post(默认为GET)
urlConnection.setRequestMethod("POST");
//设置编码格式
urlConnection.setRequestProperty("Accept-Charset", "UTF-8");
//进行链接
urlConnection.connect();
//获取输入流,因为数据量较大,并且是视频文件,所以用字节流 BufferedInputStream 比较快一些
BufferedInputStream is = new BufferedInputStream(urlConnection.getInputStream());
//获取文件名称
String fileName = dowUrl.substring(dowUrl.lastIndexOf("/"));
//设置下载文件所需要存放的目录
File file = new File("D:\\downloadVideo\\" + fileName);
//判断文件是否存在
if (!file.exists()) {
// 先得到文件的上级目录,并创建上级目录,在创建文件
file.getParentFile().mkdir();
file.createNewFile();
}
//获取文件的输出流
OutputStream out = new FileOutputStream(file);
//剩余文件内容的大小
int len = 0;
//设置每次写入的大小
byte[] b = new byte[20480];
//把输入流的文件读取到字节数据b中,然后输出到指定目录的文件
while ((len = is.read(b)) != -1) {
out.write(b, 0, len);
}
// 关闭资源
is.close();
out.close();
return "download success";
} catch (MalformedURLException e) {
e.printStackTrace();
return "500";
} catch (IOException e) {
e.printStackTrace();
return "400";
}
}
从服务器下载文件到本地(demo)
最新推荐文章于 2024-04-19 11:30:00 发布