关于下载远程文件为未知文件.txt的解决方法
本地下载文件后缀正常,服务器下载文件后缀都为.txt的解决方法:
后缀为 未知文件.txt 的原因为前端无权限获取Content-Disposition中的文件名
response.setHeader("content-type", "application/octet-stream");
response.setContentType("application/octet-stream");
//将文件名设置到 Content-Disposition
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName,"UTF-8"));
// 这一行一定要加 意为允许前端获取Content-Disposition的文件名
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
下载远程文件代码:
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
需引入commons-io使用IOUtils
/**
* 流下载
* @param request HttpServletRequest
* @param response HttpServletResponse
* @param filePath 文件路径
*/
public void downloadFile(HttpServletRequest request, HttpServletResponse response, String filePath) {
OutputStream os = null; //输出流
try {
os = response.getOutputStream();
//获取文件名
String fileName = downloadFileDTO.getFilePath().substring(filePath.lastIndexOf("/")+1);
response.setHeader("content-type", "application/octet-stream");
response.setContentType("application/octet-stream");
//将文件名设置到 Content-Disposition
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName,"UTF-8"));
//允许前端获取Content-Disposition中的文件名
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
URL url = new URL (filePath);
URLConnection uc = url.openConnection();
IOUtils.copy(uc.getInputStream(), os);
os.flush();
}catch (Exception e){
log.error("下载文件失败:{}",e.getMessage());
}finally {
try {
if(os !=null){
os.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
}
关于下载远程文件为未知文件.txt的解决方法的更多相关文章
- 织梦dedecms 无法下载远程图片 fsockopen函数被禁用的解决方法
在linux服务器上fsockopen()函数被无情的禁用了(这其实是出于安全考虑,可以理解),下载远程图片的功能就没有办法使用了.找了一些资料之后,找到了解决方法,就是用stream_socket_ ...
- 用c#读取文件内容中文是乱码的解决方法:
用c#读取文件内容中文是乱码的解决方法: //方法1: StreamReader din = new StreamReader(@"C:\1.txt", System.Text.E ...
- win7 创建vhd提示“找不到指定文件的虚拟磁盘支持提供程序”解决方法
本文参照:https://itbbs.pconline.com.cn/diy/16509116_2.html 14楼中"坚持不放弃"用户的答案得到解决 问题复现: 1.window ...
- 关于真机调试DDMS中的data文件夹打不开的解决方法
关于真机调试DDMS中的data文件夹打不开的解决方法 今天在开发的时候需要导出程序中的数据库文件查看数据,数据库文件默认就在/data/data/应用包名/databases/数据库名 这个路径下, ...
- jQuery之JSP加载JS文件不起作用的有效解决方法
JSP加载JS文件不起作用的有效解决方法 作者: 字体:[增加 减小] 类型:转载 时间:2014-04-08 jsp导入jquery文件,老是不起作用,原因在于其不能访问/WEB-INF/目录下的文 ...
- VMware虚拟机提示“锁定文件失败 打不开磁盘”解决方法
VMware虚拟机提示“锁定文件失败 打不开磁盘”解决方法 摘自: http://www.xitongcheng.com/jiaocheng/xtazjc_article_40299.html 发布时 ...
- 批处理:Windows主机通过FTP下载远程Linux主机上文件
问题:在Windows上怎么写个批处理把多个文件FTP依次下载到本地某个目录. 批处理脚本示例: @echo off title Download db files. Don't close it!! ...
- "xxxx".zip:这个压缩文件格式未知或者数据已经被损坏,打不开压缩文件,总出现这个提示的解决方法
从网上下载了一些压缩文件,有时解压时会出现“这个压缩文件格式未知或者数据已经被损坏”或“未找到压缩文件”的提示. 造成的原因有两种: 一.网站上的压缩文件本来就是坏的. 1.你可以尝试可以使用WINR ...
- .NET下载文件报错System.UnauthorizedAccessException的解决方法
假设VS代码对应路径为E:\Projects\Web1,在VS用“发布Web”的方式发布后的路径为E:\Site\Web1.在IIS新建2个站点,站点A指向E:\Projects\Web1,站点B指向 ...
随机推荐
- buu firmware
一.路由器固件,给的是bin文件,要用binwalk将固件文件系统提取出来,同时binwalk的版本要完整不然解压不了文件,下面说的很清楚了. https://blog.csdn.net/QQ1084 ...
- Go nuts
含义: to behave in a crazy, enthusiastic, or violent way. 发起狂来 详细讲解 go 在这里也不是"去"的意思,而是和 get. ...
- asp.net c# 保存图片到sql2008
//图像数据表:tx//字段id (nvarchar(50) ,image(image)//tgav为图片ID,实质为上传前的主名 (省略了.jpg)private void kkkkk(byte[] ...
- Python多线程爬取某网站表情包
# 爬取网络图片import requestsfrom lxml import etreefrom urllib import requestfrom queue import Queue # 导入队 ...
- 数据库-SQL 语法
数据库-SQL 语法 二十余年如一梦,此身虽在堪惊. 简介:数据库-SQL 语法 一.基础 模式定义了数据如何存储.存储什么样的数据以及数据如何分解等信息,数据库和表都有模式. 主键的值不允许修改,也 ...
- 关于maven打包与jdk版本的一些关系
最近让不同JAVA版本的容器maven打包折腾的不行,终于理出了一点头绪.在这里记录下备忘. 1. Maven与jdk版本的关系 先明确一个概念,关高版本JDK运行maven,是可以打出低版本的JAV ...
- mysql查询拥有某个字段的所有表
前言:最近遇到一个需求,需要给一个数据库所有的表添加一个字段,但是一些后创建的表已经有了这个字段,所以引发了下文. *注释 columnName 字段名 dbName 数据库名 #查询指定库拥有某 ...
- friend靶机
仅供个人娱乐 靶机信息 https://www.vulnhub.com/entry/me-and-my-girlfriend-1,409/ 一.主机探测 二.信息收集 访问一下web站点,提示只能从本 ...
- springboot整合ehcache缓存失效
最近做了个微信公众号后台,因为只是单应用就选用了ehcache来做本地缓存,主要是用于缓存微信的accece_token和jsapi_ticket.在使用ehcache的时候遇到了@Cacheable ...
- Java 在Word中创建多级项目符号列表和编号列表
本文分享通过Java程序代码在Word中创建多级项目符号列表和编号列表的方法.程序运行环境如下: IntelliJ IDEA 2018(JDK 1.8.0) Word 2013 Word Jar包:F ...