1.下载最新的cos包(http://www.servlets.com/cos/index.html),添加到web-inf / bin中
2.可上传多个文件.
3.主要用到的类
Part
ParamPart
FilePart
MultipartParser
upLoad()代码如下:
import
com.oreilly.servlet.multipart.
*
;
private
boolean
upLoad(HttpServletRequest request, Map
<
String,String
>
paramMap)
throws
IOException
...
{

/**//*
* 设置上传最大长度
*/
int maxSize = 2 * 1024 * 1024;

/**//*
* 上传路径
*/
String uploadpath = getServletContext().getRealPath("/")
+ Constants.picUploadPath;

/**//*
* 上传部分 先取出part判断是文件还是属性
* 如果是文件,进行相关操作 如果是属性,把属性取出,放入一个Map中,以备处理
*/
Part part = null;
MultipartParser mrequest = new MultipartParser(request, maxSize);
mrequest.setEncoding("GBK");
while ((part = mrequest.readNextPart()) != null) ...{
if (part.isFile()) ...{

/**//*
* 转化为 filePart
*/
FilePart filepart = (FilePart) part;
String fileName = filepart.getFileName();

if (fileName != null && fileName.length() > 0) ...{
// 取得扩展名
String fileExtName = fileName.substring(
fileName.lastIndexOf(".") + 1).toLowerCase();
// 只上传图片
if (fileExtName.equals("jpeg") || fileExtName.equals("jpg")
|| fileExtName.equals("gif")) ...{
String newFileName = Util.getNewFileName() + "."
+ fileExtName;
String newPath = uploadpath + newFileName;
File newFile = new File(newPath);
filepart.writeTo(newFile);
paramMap.put("picname", newFileName);
} else
return false; // 说明上传的不是图片
} else ...{
continue; // 说明没有选择上传图片
}
} else if (part.isParam()) ...{
ParamPart paramPart = (ParamPart) part;
paramMap.put(paramPart.getName(), paramPart.getStringValue());
}
}
return true;
}
本文介绍了一种利用Cos库在Java Web应用中实现多文件上传的方法。通过设置最大上传尺寸和上传路径,文章详细展示了如何解析请求并处理上传的文件与参数。特别关注了图片文件的处理流程。
3314

被折叠的 条评论
为什么被折叠?



