加上下面这个转码话语即可file_name = new String(file_name.getBytes(), "ISO-8859-1");response.setHeader("Content-Disposition","attachment;filename="+file_name);
针对不同浏览器类型,对
文件名
字
做编码处理 Firefox (Base64) ;IE、Chrome ... 使用的是URLEncoder
public class DownloadServlet2 extends HttpServlet {
@Override
protected void doGet(HttpServletReq...
1、通常
下载
文件
我们直接通过打开此链接,即可
下载
,但这种
文件名
,我们无法自定义,多数是通过后端来控制(即采用链接最后面那一串为
文件名
)
window.open(url, '__blank')
2、同域名情况下,我们也可以通过a标签的download属性来自定义
下载
文件名
(通常情况存储
文件
和自身网址不是统一域名)
let a = document.createElement('a')
a.href = url
a.download = `${name}${+new Date()}.c
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.*...
当我们设定可以
下载
文件
这个功能的
时
候(在用SpringMVC框架的前提下),Controller
文件
是这么写的:
@RequestMapping("/download")
public void download(String filename, HttpSession session, HttpServletResponse resp){
System.out.println(filename);
即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pragma
主要: Cache-Control , Connection , Data , Pragma , Trailer , Transfer-Encoding , Upgrade
(2)请求头
用于在请求消息中向服务器传递附加信息,
FILENAME为我们要
下载
的
文件
的
文件名
(包含后缀),RFC 2183规定FILENAME只能为US-ASCII码,然而现代浏览器中许多已经支持UTF-8编码了,但各个浏览器的支持规则不同。在IE、chrome中,可以直接用FILENAME作为
下载
文件
的名称,但是Firefox却不支持这样。我们直接上代码吧。
public void doGet(HttpServletRequest r