springboot在开发文件下载过程中出现的文件损坏问题
链接: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在开发文件下载过程中出现的文件损坏问题相关推荐
- 解决Google Drive 大文件下载过程中中途失败问题
使用Internet Download Manager的断点续传功能进行下载大文件. 解决Google Drive 大文件下载过程中中途失败问题 - 知乎 (zhihu.com)
- uniapp开发app过程中集成友盟统计
uniapp在开发app过程中,需要集成友盟统计,可参考以下流程进行配置 友盟统计官网注册并获取appkey 单独创建安卓跟ios的应用,获取到appkey(这里以安卓为例) 配置manifest.j ...
- 在顶级游戏开发的过程中需要怎样的编程实力?
做游戏技术主要讲究的是套路,以及对套路的掌握程度.比如说你要搞个体积光,那么从用mesh+uv动画,到volumetric scattering你都得知道,而且要知道这些方案的优缺点,以及具体的实现细 ...
- 软件开发的过程中, 一定需要简单设计?
2017.7.4, 深圳, Ken Fang 前言: 简单设计只是写文档, 而不能指导开发, 这样的简单设计, 就只是在瞎折腾. 但是, 软件开发的过程中, 不做简单设计, 软件开发就永远做不好. 简 ...
- 生信分析过程中这些常见文件的格式以及查看方式你都知道吗?
生信分析过程中,会与很多不同格式的文件打交道,除了原始测序数据fastq之外,还需要准备基因组文件fasta格式和基因注释文件gtf格式.在分析的过程中还会有众多中间文件的生成,如bed.bed12. ...
- 生信分析过程中这些常见文件(fastq/bed/gtf/sam/bam/wig)的格式以及查看方式你都知道吗?
生信分析过程中,会与很多不同格式的文件打交道,除了原始测序数据fastq之外,还需要准备基因组文件fasta格式和基因注释文件gtf格式.在分析的过程中还会有众多中间文件的生成,如bed.bed12. ...
- linux中realplayer.rpm格式的软件安装,realplayer安装过程中出现的文件依赖问题
realplayer安装过程中出现的文件依赖问题 发布时间:2010-07-20 14:26:21来源:红联作者:kevin_freedom [i=s] 本帖最后由 kevin_freedom 于 2 ...
- linux怎么查看一个bam文件,生信分析过程中这些常见文件的格式以及查看方式你都知道吗?...
原标题:生信分析过程中这些常见文件的格式以及查看方式你都知道吗? 生信分析过程中,会与很多不同格式的文件打交道,除了原始测序数据 fastq 之外,还需要准备基因组文件 fasta 格式和基因注释文件 ...
- weblogic不能启动的解决方案;发现启动过程中AdminServer.lok文件报错,导致weblogic不能启动
1.问题现象 weblogic不能正常访问:节点2启动双机可以带起weblogic文件系统也能带起服务IP但不能带起weblogic服务. 2.问题解决 1) 手动启动weblogic脚本,发现启动过 ...
- Eclipse开发调试过程中经常使用到的常见按钮
在项目过程中一些刚刚入行的同学经常出现一些类似于"刚刚那个窗口怎么不见了"."我的控制台呢"这样的问题,总的来说就是对eclipse这个工具使用不熟练.于是我就 ...
最新文章
- MFC的exe启动时提示应用程序配置不正确,应用程序未能启动错误
- 快速排序C实现(阿里巴巴 2012年全国校招笔试题)
- JavaWeb——c:forEach varStatus=status
- unity之中级工程师
- Volatile原子性一致性JVM指令重排
- 要求或禁止在堆中产生对象
- iOS程序员必须知道的Android要点
- 【Android开发】jarsigner重新打包apk
- EPLAN P8 2.7在WIN10上安装无法连接虚拟加密狗的解决方法
- ssm仓库管理系统含论文
- MacBook上下载安装Mysql
- dbpedia知识图谱java_一种基于DBpedia的水务领域概念知识图谱构建方法与流程
- 使用python快速开发桌面小工具
- 表妹也录取了计算机专业,作为过来人要给她领好路!
- java 有向图 最短路径算法_java使用Dijkstra算法实现单源最短路径
- 消息中间件 一 之 AMQP译文(下)
- pull时出现错误及解决方法
- 电路之KCL和KVL的独立方程数总结
- 高项考试-信息系统服务管理
- 【RMAN】RMAN跨版本恢复(中)
热门文章
- Unity3D 统一修改Text的字体
- dijkstra之细节处理 ——PAT (Advanced Level) 1072 Gas Station (30 分)
- 如何解决IDEA或PyCharm 莫名出现的黑色斑块,或者说文字下方出现随鼠标移动的黑色底色
- 0416-07-如何为Hue集成AD认证
- ubuntu18.04双系统息屏或合上笔记本盖子后无法唤醒
- 如何判断MySQL是否安装成功
- 联通CEO常小兵首次反击拆分传言 称有信心上3G
- G2R(Game to Reality) 游戏行业的O2O
- 根据配置CLASSPATH彻底弄懂AppCLassLoader的加载路径问题
- JAVA面试题解惑系列(七)——日期和时间的处理