您的位置:首页 > 其它

commons-fileupload 核心API 分析

2015-12-05 16:46 197 查看
1、ServletFileUpload 文件上传核心类

static boolean isMultipartContent(javax.servlet.http.HttpServletRequest request)

判断request的编码方式是否为multipart/form-data

java.util.List parseRequest(javax.servlet.http.HttpServletRequest request)

解析request,将请求体每个部分封装FileItem对象,返回List

(了解)

void setFileSizeMax(long fileSizeMax) //设置单个文件上传大小

void setSizeMax(long sizeMax) //设置总文件上传大小

void setHeaderEncoding(java.lang.String encoding)

//设置编码集 解决上传文件名乱码

3、FileItem 表示文件上传表单中 每个数据部分

boolean isFormField() 判断该数据项是否为文件上传项,

true 不是文件上传 false 是文件上传

if(fileItem.isFormField()){
// 不是上传项
java.lang.String getFieldName()  获得普通表单项name属性值
java.lang.String getString()    // 获取非上传文件表单域的数据
获得普通表单项value属性 传入编码集用来解决输入value乱码
}else{
// 是上传项-- 上传文件
java.lang.String getName() 获得上传文件名 (注意IE存在路径)
java.io.InputStream  getInputStream() 获得上传文件内容输入流
// 上传文件
void delete()  删除临时文件(删除时,必须要管理输入输出流)
}


注意上传文件编码的设置问题:

因为文件上传表单采用编码方式multipart/form-data 与传统url编码不同,

所以getParameter 方法不能使用 setCharacterEncoding 无法解决输入项乱码问题

采用apache自带的中文解决乱码处理:setHeaderEncoding(java.lang.String encoding)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: