链接:https://www.jianshu.com/p/f4016e2e1158

https://blog.csdn.net/xinyuebaihe/article/details/88249561

文件下载后文件损坏的问题,今天做项目碰到了,就顺便做个笔记吧!

本地文件下载:

public void getWordFile(HttpServletRequest request, HttpServletResponse response) throws IOException {   private static final String fileNameString = "XXXX.docx"; //声明要下载的文件名      //String fileName = new String(fileNameString.getBytes("ISO8859-1"), "UTF-8");      response.setContentType("application/octet-stream");   // URLEncoder.encode(fileNameString, "UTF-8") 下载文件名为中文的,文件名需要经过url编码      response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileNameString, "UTF-8"));   File file;   FileInputStream fileIn = null;   ServletOutputStream out = null;   try {   String contextPath = ContextLoader.getCurrentWebApplicationContext().getServletContext().getRealPath("/");   String filePathString = contextPath + "database" + File.separator + fileNameString;   file = new File(filePathString);   fileIn = new FileInputStream(file);   out = response.getOutputStream();   byte[] outputByte = new byte[1024];   int readTmp = 0;   while ((readTmp = fileIn.read(outputByte)) != -1) {   out.write(outputByte, 0, readTmp); //并不是每次都能读到1024个字节,所有用readTmp作为每次读取数据的长度,否则会出现文件损坏的错误     }   }   catch (Exception e) {   log.error(e.getMessage());   }   finally {   fileIn.close();   out.flush();   out.close();   }   }  

网络文件下载

https://blog.csdn.net/xiansu5452/article/details/79485388

    public static boolean downloadFile(String fileUrl, String fileLocal) throws Exception {boolean flag = false;URL url = new URL(fileUrl);HttpURLConnection urlCon = (HttpURLConnection) url.openConnection();urlCon.setConnectTimeout(6000);urlCon.setReadTimeout(6000);int code = urlCon.getResponseCode();if (code != HttpURLConnection.HTTP_OK) {throw new Exception("文件读取失败");}//读文件流DataInputStream in = new DataInputStream(urlCon.getInputStream());DataOutputStream out = new DataOutputStream(new FileOutputStream(fileLocal));byte[] buffer = new byte[2048];int count = 0;while ((count = in.read(buffer)) > 0) {out.write(buffer, 0, count);}try {if (out != null) {out.close();}if (in != null) {in.close();}} catch (Exception e) {e.printStackTrace();}flag = true;return flag;}

springboot在开发文件下载过程中出现的文件损坏问题相关推荐

  1. 解决Google Drive 大文件下载过程中中途失败问题

    使用Internet Download Manager的断点续传功能进行下载大文件. 解决Google Drive 大文件下载过程中中途失败问题 - 知乎 (zhihu.com)

  2. uniapp开发app过程中集成友盟统计

    uniapp在开发app过程中,需要集成友盟统计,可参考以下流程进行配置 友盟统计官网注册并获取appkey 单独创建安卓跟ios的应用,获取到appkey(这里以安卓为例) 配置manifest.j ...

  3. 在顶级游戏开发的过程中需要怎样的编程实力?

    做游戏技术主要讲究的是套路,以及对套路的掌握程度.比如说你要搞个体积光,那么从用mesh+uv动画,到volumetric scattering你都得知道,而且要知道这些方案的优缺点,以及具体的实现细 ...

  4. 软件开发的过程中, 一定需要简单设计?

    2017.7.4, 深圳, Ken Fang 前言: 简单设计只是写文档, 而不能指导开发, 这样的简单设计, 就只是在瞎折腾. 但是, 软件开发的过程中, 不做简单设计, 软件开发就永远做不好. 简 ...

  5. 生信分析过程中这些常见文件的格式以及查看方式你都知道吗?

    生信分析过程中,会与很多不同格式的文件打交道,除了原始测序数据fastq之外,还需要准备基因组文件fasta格式和基因注释文件gtf格式.在分析的过程中还会有众多中间文件的生成,如bed.bed12. ...

  6. 生信分析过程中这些常见文件(fastq/bed/gtf/sam/bam/wig)的格式以及查看方式你都知道吗?

    生信分析过程中,会与很多不同格式的文件打交道,除了原始测序数据fastq之外,还需要准备基因组文件fasta格式和基因注释文件gtf格式.在分析的过程中还会有众多中间文件的生成,如bed.bed12. ...

  7. linux中realplayer.rpm格式的软件安装,realplayer安装过程中出现的文件依赖问题

    realplayer安装过程中出现的文件依赖问题 发布时间:2010-07-20 14:26:21来源:红联作者:kevin_freedom [i=s] 本帖最后由 kevin_freedom 于 2 ...

  8. linux怎么查看一个bam文件,生信分析过程中这些常见文件的格式以及查看方式你都知道吗?...

    原标题:生信分析过程中这些常见文件的格式以及查看方式你都知道吗? 生信分析过程中,会与很多不同格式的文件打交道,除了原始测序数据 fastq 之外,还需要准备基因组文件 fasta 格式和基因注释文件 ...

  9. weblogic不能启动的解决方案;发现启动过程中AdminServer.lok文件报错,导致weblogic不能启动

    1.问题现象 weblogic不能正常访问:节点2启动双机可以带起weblogic文件系统也能带起服务IP但不能带起weblogic服务. 2.问题解决 1) 手动启动weblogic脚本,发现启动过 ...

  10. Eclipse开发调试过程中经常使用到的常见按钮

    在项目过程中一些刚刚入行的同学经常出现一些类似于"刚刚那个窗口怎么不见了"."我的控制台呢"这样的问题,总的来说就是对eclipse这个工具使用不熟练.于是我就 ...

最新文章

  1. MFC的exe启动时提示应用程序配置不正确,应用程序未能启动错误
  2. 快速排序C实现(阿里巴巴 2012年全国校招笔试题)
  3. JavaWeb——c:forEach varStatus=status
  4. unity之中级工程师
  5. Volatile原子性一致性JVM指令重排
  6. 要求或禁止在堆中产生对象
  7. iOS程序员必须知道的Android要点
  8. 【Android开发】jarsigner重新打包apk
  9. EPLAN P8 2.7在WIN10上安装无法连接虚拟加密狗的解决方法
  10. ssm仓库管理系统含论文
  11. MacBook上下载安装Mysql
  12. dbpedia知识图谱java_一种基于DBpedia的水务领域概念知识图谱构建方法与流程
  13. 使用python快速开发桌面小工具
  14. 表妹也录取了计算机专业,作为过来人要给她领好路!
  15. java 有向图 最短路径算法_java使用Dijkstra算法实现单源最短路径
  16. 消息中间件 一 之 AMQP译文(下)
  17. pull时出现错误及解决方法
  18. 电路之KCL和KVL的独立方程数总结
  19. 高项考试-信息系统服务管理
  20. 【RMAN】RMAN跨版本恢复(中)

热门文章

  1. Unity3D 统一修改Text的字体
  2. dijkstra之细节处理 ——PAT (Advanced Level) 1072 Gas Station (30 分)
  3. 如何解决IDEA或PyCharm 莫名出现的黑色斑块,或者说文字下方出现随鼠标移动的黑色底色
  4. 0416-07-如何为Hue集成AD认证
  5. ubuntu18.04双系统息屏或合上笔记本盖子后无法唤醒
  6. 如何判断MySQL是否安装成功
  7. 联通CEO常小兵首次反击拆分传言 称有信心上3G
  8. G2R(Game to Reality) 游戏行业的O2O
  9. 根据配置CLASSPATH彻底弄懂AppCLassLoader的加载路径问题
  10. JAVA面试题解惑系列(七)——日期和时间的处理