java工具类下载_java文件下载工具类
/**
* Desc:下载工具类
* @date 2014-6-26
*/
public class DownLoadUtil {
/**
* Desc:根据文件头判断请求来自的浏览器,以便有针对性的对文件名转码
* @date 2014-6-26
* @param request
* @return
* @throws Exception
*/
public static String transFileName(String fileName, HttpServletRequest request) {
String agent = request.getHeader("USER-AGENT");
//fileName = fileName.trim();//去首尾空格
try {
//根据文件头判断请求来自的浏览器,以便有针对性的对文件名转码
if(null != agent && -1 != agent.indexOf("theworld")){//世界之窗
fileName = new String(fileName.getBytes("gb2312"), "ISO8859-1"); //解决下载的文件名中含有小括号转变义符%28%29
}else if(null != agent && -1 != agent.indexOf("MSIE 8.0")){//IE8
String lenFileName = URLEncoder.encode(fileName, "UTF-8");
if (lenFileName.length() > 150) {//文件名长度是否大于150个字符
fileName = new String(fileName.getBytes("gb2312"), "ISO8859-1");
} else {
fileName = URLEncoder.encode(fileName,"UTF-8").replace("+","%20");
}
}else if(null != agent && -1 != agent.indexOf("MSIE 7.0") && -1 != agent.indexOf("SE 2.X MetaSr 1.0")){//sogo浏览器
fileName = URLEncoder.encode(fileName,"UTF-8").replace("+","%20");
}else if(null != agent && (-1 != agent.indexOf("SV1") || -1 != agent.indexOf("360SE"))){//360安全浏览器
String lenFileName = URLEncoder.encode(fileName, "UTF-8");
if (lenFileName.length() > 150) {//文件名长度是否大于150个字符
fileName = new String(fileName.getBytes("gb2312"), "ISO8859-1");
} else {
fileName = URLEncoder.encode(fileName,"UTF-8").replace("+","%20");
}
}else if(null != agent && -1 != agent.indexOf("Chrome")){//google
fileName = new String(fileName.getBytes("gb2312"), "ISO8859-1"); //解决下载的文件名中含有小括号转变义符%28%29
}else if(null != agent && -1 != agent.indexOf("Firefox")){//Firefox
fileName = new String(fileName.getBytes("gb2312"), "ISO8859-1");
}else if(null != agent && -1 != agent.indexOf("Safari")){//Firefox
fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1");
}else {//其它浏览器
fileName = new String(fileName.getBytes("gb2312"), "ISO8859-1");
}
} catch (Exception e) {
throw new RuntimeException("transFileName error", e);
}
return fileName;
}
}
java工具类下载_java文件下载工具类相关推荐
- java pinyin4j.jar 下载_Java pinyin4j 工具类实现代码分享
工具类代码:package com.what21.util.pinyin; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourc ...
- java url类下载_Java根据url下载图片或文件的工具类-Fun言
package cn.funyan.utils; import java.io.FileOutputStream; import java.io.IOException; import java.io ...
- java 枚举的继承_java中枚举类可以被继承吗?
java 枚举类 java中,使用关键字enum来定义枚举类,枚举类是一个特殊的类,大部分功能和普通类是一样的,区别为: ● 枚举类继承了java.lang.Enum类,而不是默认的Object类.而 ...
- java 类爆炸_Java 封装与类
一.面向对象编程 面向对象编程三大特性:封装.继承和多态. 类是实现封装的手段,是面向对象编程的基本单元. 封装隐藏了类的内部实现细节,暴露给外界可控的操作,提高数据的完整性和安全性,提高模块的可重用 ...
- java 日期格式常量_Java 日期格式类
Java格式 - Java日期格式类 Java 8有新的Date-Time API来处理日期和时间. 我们应该使用新的Java 8 Date-Time API来格式化和解析日期时间值. 如果我们正在编 ...
- java上传下载_Java文件上传与文件下载实现方法详解
本文实例讲述了Java文件上传与文件下载实现方法.分享给大家供大家参考,具体如下: Java文件上传 数据上传是客户端向服务器端上传数据,客户端向服务器发送的所有请求都属于数据上传.文件上传是数据上传 ...
- java random函数用法_JAVA的Random类的用法详解
Random类主要用来生成随机数,本文详解介绍了Random类的用法,希望能帮到大家. Random类 (java.util) Random类中实现的随机算法是伪随机,也就是有规则的随机.在进行随机时 ...
- java web 初始化方法_Java Web(二) 类的初始化及初始化顺序
1. 问题点 最近在写单例模式的时候碰到了@Autiwired注解注入为NULL的情况,研究一番,发现是和类的初始化顺序有关.先抛出我的问题: //异步处理 public class AsyncMan ...
- java接口作为参数_JAVA:将类、抽象类、接口当成方法的参数传入
将类当成参数传入方法,其实就是将类的对象传入方法,如果是抽象类,其实就是将抽象类的子类的对象传入方法,如果是接口,其实就是将接口实现类的对象传入方法. 因为抽象类和接口是不能实例化成对象的,所以必须找 ...
最新文章
- Dropbox如何使用机器学习从数十亿图片中自动提取文字
- 一场“正宗”的开发者大会,为什么说微软更像是“AII in AI”了?
- java tabpanel_java cs tab点击切换标签的实现 panel
- 与MYSQL的零距离接触(数据类型) 慕课网
- linux 管道 top,linux IPC总结——管道
- Google解密携手宏达电:确保Android一炮打响
- 信息学奥赛一本通(1022:整型与布尔型的转换)
- AllJoyn+Android开发案例-android跨设备调用方法
- Android应用启动画面实现
- 三维激光雷达路沿检测
- js 判断系统类型和手机型号(厂商)
- ASP.NET限制上传文件类型
- ih5手机版怎么登录服务器未响应,ih5 与服务器链接教程
- 在WIN2012R2和WIN2016服务器打开网站慢的解决方法
- iOS app 打包发布
- 计算机开机后黑屏鼠标显示桌面图标,电脑开机后黑屏只有一个鼠标箭头怎么办 电脑黑屏的解决方法...
- 适配器模式实战场景和本质
- 我做了一款iOS12捷径市场,也许是目前最好看也是最具技术含量的ShortCuts小程序
- 淘宝API_item_cat_get - 获得淘宝商品类目
- Qt QAxObject操作excel文件过程总结
热门文章
- 使用SAP Spartacus快速创建一个电商店铺网站
- SAP CRM和Cloud for Customer里的Formatted Text控件的比较
- Eclipse里Java项目设置Java编辑器版本的位置
- 一个初学者的SAP Cloud Platform学习笔记
- SAP Fiori elements第二次重复加载的问题
- Opportunity retrieval in SalesPipeline
- SAP CRM WebClient UI Sales Area的cancel处理
- 批量设置Service Order成transferred状态
- 如何找到SAP CRM WebClient UI error message的来源
- inconsistent debug frame and source code -Eclipse调试器里看到的代码行数和实际源代码不一致该怎么办