如果文件名称中有中文或者空格,会出现文件名称编码不对的问题。
以NODEJS语言为例子:
var filename = '下载 文件名称.txt';
if(request.headers['user-agent'].toLowerCase().indexOf("msie") > -1){
filename = encodeURIComponent(filename);
}else{
filename = '"' + filename + '"';
}
var head = {
'content-type': 'application/force-download',
'Content-Disposition': 'attachment; filename=' + filename
};
response.writeHead(200, head);
response.end(stream);
如果不加上
if(request.headers['user-agent'].toLowerCase().indexOf("msie") > -1){
filename = encodeURIComponent(filename);
}else{
filename = '"' + filename + '"';
}
那么会出现以下问题:
"下载 文件名称.txt"在IE下载时显示名称为
%E4%B8%8B%E8%BD%BD%20%E6%96%87%E4%BB%B6%E5%90%8D%E7%A7%B0.txt
"下载 文件名称.txt"在非IE浏览器(如Firefox)下载时显示名称为
"下载",空格后面的没了。。。