1.下载最新的cos包(http://www.servlets.com/cos/index.html),添加到web-inf / bin中
2.可上传多个文件.
3.主要用到的类
Part
ParamPart
FilePart
MultipartParser
upLoad()代码如下:
import
com.oreilly.servlet.multipart.
*
;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
private
boolean
upLoad(HttpServletRequest request, Map
<
String,String
>
paramMap)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
throws
IOException
...
{
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
/**//*
* 设置上传最大长度
*/
int maxSize = 2 * 1024 * 1024;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
/**//*
* 上传路径
*/
String uploadpath = getServletContext().getRealPath("/")
+ Constants.picUploadPath;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
/**//*
* 上传部分 先取出part判断是文件还是属性
* 如果是文件,进行相关操作 如果是属性,把属性取出,放入一个Map中,以备处理
*/
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
Part part = null;
MultipartParser mrequest = new MultipartParser(request, maxSize);
mrequest.setEncoding("GBK");
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
while ((part = mrequest.readNextPart()) != null) ...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if (part.isFile()) ...{
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
/**//*
* 转化为 filePart
*/
FilePart filepart = (FilePart) part;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
String fileName = filepart.getFileName();
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if (fileName != null && fileName.length() > 0) ...{
// 取得扩展名
String fileExtName = fileName.substring(
fileName.lastIndexOf(".") + 1).toLowerCase();
// 只上传图片
if (fileExtName.equals("jpeg") || fileExtName.equals("jpg")
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
|| fileExtName.equals("gif")) ...{
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
String newFileName = Util.getNewFileName() + "."
+ fileExtName;
String newPath = uploadpath + newFileName;
File newFile = new File(newPath);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
filepart.writeTo(newFile);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
paramMap.put("picname", newFileName);
} else
return false; // 说明上传的不是图片
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
} else ...{
continue; // 说明没有选择上传图片
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
} else if (part.isParam()) ...{
ParamPart paramPart = (ParamPart) part;
paramMap.put(paramPart.getName(), paramPart.getStringValue());
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
return true;
}