Java实现从服务器下载文件到本地的工具类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java实现从服务器下载文件到本地的工具类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2411字,纯文字阅读大概需要4分钟。
内容图文
![Java实现从服务器下载文件到本地的工具类](/upload/InfoBanner/zyjiaocheng/813/8a8e769552514b618da76b375c21a7d7.jpg)
话不多说,直接上代码......
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; /*** * 将文件内容响应到浏览器 */ public class DownloadUtil { // 字符编码格式 private static String charsetCode = "utf-8"; /** * 文件的内容类型 */ private static String getFileContentType(String name){ String result = ""; String fileType = name.toLowerCase(); if (fileType.endsWith(".png")) { result = "image/png"; } else if (fileType.endsWith(".gif")) { result = "image/gif"; } else if (fileType.endsWith(".jpg") || fileType.endsWith(".jpeg")) { result = "image/jpeg"; } else if(fileType.endsWith(".svg")){ result = "image/svg+xml"; }else if (fileType.endsWith(".doc")) { result = "application/msword"; } else if (fileType.endsWith(".xls")) { result = "application/x-excel"; } else if (fileType.endsWith(".zip")) { result = "application/zip"; } else if (fileType.endsWith(".pdf")) { result = "application/pdf"; } else { result = "application/octet-stream"; } return result; } /** * 下载文件 * @param path 文件的位置 * @param fileName 自定义下载文件的名称 * @param resp http响应 * @param req http请求 */ public static void downloadFile(String path, String fileName, HttpServletResponse resp, HttpServletRequest req){ try { File file = new File(path); /** * 中文乱码解决 */ String type = req.getHeader("User-Agent").toLowerCase(); if(type.indexOf("firefox")>0 || type.indexOf("chrome")>0){ /** * 谷歌或火狐 */ fileName = new String(fileName.getBytes(charsetCode), "iso8859-1"); }else{ /** * IE */ fileName = URLEncoder.encode(fileName, charsetCode); } // 设置响应的头部信息 resp.setHeader("content-disposition", "attachment;filename=" + fileName); // 设置响应内容的类型 resp.setContentType(getFileContentType(fileName)+"; charset=" + charsetCode); // 设置响应内容的长度 resp.setContentLength((int) file.length()); // 输出 outStream(new FileInputStream(file), resp.getOutputStream()); } catch (Exception e) { System.out.println("执行downloadFile发生了异常:" + e.getMessage()); } } /** * 基础字节数组输出 */ private static void outStream(InputStream is, OutputStream os) { try { byte[] buffer = new byte[10240]; int length = -1; while ((length = is.read(buffer)) != -1) { os.write(buffer, 0, length); os.flush(); } } catch (Exception e) { System.out.println("执行 outStream 发生了异常:" + e.getMessage()); } finally { try { os.close(); } catch (IOException e) { } try { is.close(); } catch (IOException e) { } } } }
使用。。( springboot项目 )
内容总结
以上是互联网集市为您收集整理的Java实现从服务器下载文件到本地的工具类全部内容,希望文章能够帮你解决Java实现从服务器下载文件到本地的工具类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。