赞
踩
- import javax.servlet.http.HttpServletResponse;
- import java.io.*;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.net.URLEncoder;
-
- public class HttpUtils {
-
- /**
- * 从网络Url中下载文件到本地磁盘
- *
- * @param urlStr
- * @param fileName
- * @param savePath
- * @throws IOException
- */
- public static void downLoadFromUrl(String urlStr, String fileName, String savePath) throws IOException {
- URL url = new URL(urlStr);
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();
- //设置超时间为3秒
- conn.setConnectTimeout(30 * 1000);
- conn.setReadTimeout(60 * 1000);
- //得到输入流
- InputStream inputStream = conn.getInputStream();
- //获取自己数组
- byte[] getData = readInputStream(inputStream);
-
- //文件保存位置
- File saveDir = new File(savePath);
- if (!saveDir.exists()) {
- saveDir.mkdir();
- }
- File file = new File(saveDir + File.separator + fileName);
- FileOutputStream fos = new FileOutputStream(file);
- fos.write(getData);
- if (fos != null) {
- fos.close();
- }
- if (inputStream != null) {
- inputStream.close();
- }
- }
-
-
- /**
- * 从网络url下载excel
- * @param url
- * @param fileName
- * @param response
- * @throws Exception
- */
- public void downloadExcelByUrl(String url, String fileName, HttpServletResponse response) throws Exception {
- fileName = URLEncoder.encode(fileName, "UTF-8");
- response.setContentType("application/vnd.ms-excel;charset=utf-8");
- response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".xlsx");
- byte[] buff = new byte[1024];
- BufferedInputStream bis = null;
- OutputStream outputStream = null;
- InputStream inputStream = null;
- try {
- URL httpUrl = new URL(url);
- HttpURLConnection connection = (HttpURLConnection) httpUrl.openConnection();
- connection.setConnectTimeout(3000);
- connection.setReadTimeout(5000);
- outputStream = response.getOutputStream();
- inputStream = connection.getInputStream();
- bis = new BufferedInputStream(inputStream);
- int len;
- while ((len = bis.read(buff)) > 0) {
- outputStream.write(buff, 0, len);
- outputStream.flush();
- }
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (bis != null) {
- bis.close();
- }
- if (outputStream != null) {
- outputStream.close();
- }
- if (inputStream != null) {
- inputStream.close();
- }
- }
- }
-
- /**
- * 从输入流中获取字节数组
- *
- * @param inputStream
- * @return
- * @throws IOException
- */
- public static byte[] readInputStream(InputStream inputStream) throws IOException {
- byte[] buffer = new byte[1024];
- int len = 0;
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- while ((len = inputStream.read(buffer)) != -1) {
- bos.write(buffer, 0, len);
- }
- bos.close();
- return bos.toByteArray();
- }
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。