赞
踩
- @Slf4j
- public class PDFUtils {
-
- /**
- *
- * @param fileUrl 文件路径
- * @param saveUrl 文件保存路径
- * @param fileName 文件名称
- * @throws IOException
- */
- public static void downloadPdf(String fileUrl, String saveUrl, String fileName) throws IOException {
-
- URL url = new URL(fileUrl);
- HttpURLConnection conn = (HttpURLConnection)url.openConnection();
- //设置超时间为3秒
- conn.setConnectTimeout(5*1000);
- //防止屏蔽程序抓取而返回403错误
- conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
- //得到输入流
- InputStream inputStream = conn.getInputStream();
- //获取自己数组
- byte[] getData = readInputStream(inputStream);
- //文件保存位置
- File saveDir = new File(saveUrl);
- 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();
- }
- System.out.println("info:"+url+" download success");
-
- }
-
-
- /**
- * 从输入流中获取字节数组
- * @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();
- }
-
-
- /**
- * 下载pdf返回文件流
- * @param response 请求头
- * @param pdfName fileName
- * @param path 路径
- */
- public static void toDownload(HttpServletResponse response, String pdfName,String path) {
- ServletOutputStream out = null;
- InputStream inputStream = null;
-
- try {
- // 获取外部文件流
- log.info("下载中------invPdfUrl=" +path);
- URL url = new URL(path);
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();
- conn.setConnectTimeout(3 * 1000);
- //防止屏蔽程序抓取而返回403错误
- conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
- inputStream = conn.getInputStream();
- /**
- * 输出文件到浏览器
- */
- int len = 0;
- // 输出 下载的响应头,如果下载的文件是中文名,文件名需要经过url编码
- response.setContentType("text/html;charset=utf-8");
- response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(pdfName, "UTF-8"));
- response.setHeader("Cache-Control", "no-cache");
- out = response.getOutputStream();
- byte[] buffer = new byte[1024];
- while ((len = inputStream.read(buffer)) > 0) {
- out.write(buffer, 0, len);
- }
- out.flush();
- log.info("pdf文件下载完成.....");
- } catch (Exception e) {
-
- log.error("pdf文件下载异常,e = {}", e);
- e.printStackTrace();
- } finally {
- if (inputStream != null) {
- try {
- inputStream.close();
- } catch (Exception e) {
- }
- }
- if (out != null) {
- try {
- out.close();
- } catch (Exception e) {
- }
- }
- }
- }
-
-
-
-
- }

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