com.j2mvc.framework.upload.ExtIcon Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of j2mvc-framework-web Show documentation
Show all versions of j2mvc-framework-web Show documentation
强烈建议使用J2mvc 2.1以后的版本。
version 2.1.01
1.优化路径跳转,Servlet和Filter方式的路径设置
2.优化内存销毁
3.更换JSON依赖包
4.优化接收方法RequestMethod,封装不同ContentType格式提交
封装JSON,XML数据提交模块
JSON请求示例
{
"id":"JSON134851",
"title":"JSON提交的标题",
"price":65.1,
"stock":100
}
XML请求示例
<!DOCTYPE root [
<!ELEMENT root ANY>
<!ATTLIST Product SSN ID #REQUIRED>]>
<root>
<Product SSN='id'>XMLID12354</Product>
<Product SSN='title'>XML提交的标题 </Product>
<Product SSN='price'>55 </Product>
<Product SSN='stock'>32 </Product>
</root>
version 2.1.02
1.解决URL无后缀情况无法加载静态资源,解决无法渲染CSS文件。
version 2.1.03
1.移除com.j2mvc.StringUtils.getUtf8()方法调用
更改为getCharset()
version 2.1.04
1.去除Servlet和Filter的全局变量销毁,只交给Listener处理。
version 2.1.05,2.1.06,2.1.07
1.完善POST提交的JSON数据
支持接收基础数据类型、任意对象类型、任意数组类型。
不支持接收参数为集合类型或Map类型,但可以定义为接收对象类型的元素。
version 2.1.05,2.1.06,2.1.07
1.修改连接池变量
version 2.1.09
增加上传功能,修改RequestMethod,ContentType设置方式
version 2.1.10,2.1.11
更改上传文件名格式为UUID格式,移除JSON映射类,更改接收多文件上传。
version 2.1.12
删除文件列有的空对象
version 2.1.13
增加配置文件目录/conf,加载上传功能配置/conf/upload.properties
version 2.1.18
拦截器也能获取ActionBean
version 2.1.20
添加上传文件只读权限
version 2.1.21
支持同时接收文件和文本数据
version 2.1.22
增加文件接收类型media
version 2.1.23
删除upload类printJson方法
The newest version!
package com.j2mvc.framework.upload;
import java.io.File;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.j2mvc.util.Error;
/**
* 上传文件后缀图标
*/
public class ExtIcon {
public static abstract class Callback {
/**
* 上传错误
* @param error
*/
public abstract void error(Error error);
/**
* 上传完成
* @param fileInfos
*/
public abstract void success(String icon);
};
/**
* 构造器
* @param request
* @param response
* @throws IOException
*/
public ExtIcon(HttpServletRequest request, HttpServletResponse response,Callback callback) throws IOException{
String contextPath = request.getContextPath();
// 获取传来的文件名
String filename = getParam(request,"filename");
String iconPath = getParam(request,"iconPath");
iconPath = iconPath.endsWith("/")?iconPath:iconPath+"/";
String iconFilePath = "";
if(!contextPath.equals("")&& iconPath.length()>contextPath.length())
iconFilePath = iconPath.substring(contextPath.length(),iconPath.length());
iconFilePath = request.getRealPath(iconFilePath);
iconFilePath = iconFilePath.endsWith("/")?iconFilePath:iconFilePath+"/";
if( !iconPath.equals("")){
String fileExt = filename.substring(filename.lastIndexOf(".") + 1).toLowerCase();
String iconExt = fileExt+".png";
File iconFile = new File(iconFilePath+iconExt);
if(!iconFile.exists()){
iconExt = "file.png";
}
String icon = iconPath+iconExt;
callback.success(icon);
}else {
callback.error(new Error("未获取到icon路径"));
}
}
/**
* 返回指定页面参数值
* @param request
* @param name
* @return
*/
private String getParam(HttpServletRequest request,String name){
String value = request.getParameter(name)!=null?request.getParameter(name).trim():"";
return getUtf8(value);
}
/**
* 获取UTF8格式
* @param value
* @return
*/
private String getUtf8(String value){
if(value == null)
return "";
try {
if(java.nio.charset.Charset.forName("ISO-8859-1").newEncoder().canEncode(value)){
value = new String(value.getBytes("ISO-8859-1"),"UTF-8");
}else if(java.nio.charset.Charset.forName("UTF-8").newEncoder().canEncode(value)){
}else if(java.nio.charset.Charset.forName("GBK").newEncoder().canEncode(value)){
value = new String(value.getBytes("GBK"),"UTF-8");
}else if(java.nio.charset.Charset.forName("GB2312").newEncoder().canEncode(value)){
value = new String(value.getBytes("GB2312"),"UTF-8");
}
} catch (Exception e) {
}
return value;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy