5D艺术网首页
商城
|
资讯
|
作品
|
博客
|
教程
|
论坛
登录
注册
加为好友
发短消息
来自:厦门
性别:先生
最后登录:2015-09-10
http://bluelover.5d.cn/
首页
|
新闻
|
话题
|
博客
|
相册
|
艺术作品
|
社交关系
|
留言板
|
社交圈
2005/09/23 | 一下午就写两个函数-就为了附件中文名
类别(我的文档[原创])
|
评论
(0)
|
阅读(109)
|
发表于 19:07
1、设置文件名:
BASE64Encoder bASE64Encoder = new BASE64Encoder();
fileBodyPart.setFileName("=?GBK?B?"
+ bASE64Encoder.encode((fileDataSource.getName()).getBytes()) + "=?=");
2、
/**
* 保存附件文件
* @param fileNameHead 路径+附件开头
* @param fileNameContent 文件名
* @param inputStream part.getInputStream()
*/
private static void saveFile(String fileNameHead,String fileNameContent,InputStream inputStream){
try{
fileNameContent = convertGBEncoding(fileNameContent);
fileNameContent = MimeUtility.decodeText(fileNameContent);
String filename = fileNameHead + "_0_" + fileNameContent;
File file = new File(filename);
for (int i=0; file.exists(); i++) {
filename = fileNameHead + "_" + i + "_" + fileNameContent;
file = new File(filename);
}
saveToDisk(filename,inputStream);
}catch(Exception e){
e.printStackTrace();
}
}
3、
/**
* 中文编码转换
* @param content
* @return
*/
private static String convertGBEncoding(String content) {
boolean exist = false;
int encodeStart = 0;
if ((content.toUpperCase().startsWith("=?GB2312?B?") && content
.toUpperCase().endsWith("=?="))){
encodeStart = 11;
exist = true;
}
if ( (content.toUpperCase().startsWith("=?GBK?B?") && content
.toUpperCase().endsWith("?="))) {
encodeStart = 8;
exist = true;
}
try {
if (exist) {
BASE64Decoder decoder = new BASE64Decoder();
content = content.substring(encodeStart,content.indexOf("?=")-1);
byte[] b = decoder.decodeBuffer(content);
return new String(b);
}else {
return new String(content.getBytes("ISO-8859-1"), encodeing);
}
} catch (Exception ex) {
return content;
}
}
0
评论
Comments
日志分类
首页
[148]
小新的博客[原创]
[70]
我的文档[原创]
[33]
杂项
[5]
企业信息化
[9]
数据库[原创]
[12]
文档转载
[17]
配置管理
[2]