package com.servlet;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
/**
* 多个文件上传服务.
*
* @author : Yc
*/
@WebServlet(urlPatterns = { "/uploadMultiService" })
@MultipartConfig
public class UploadMultiServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String charset = "UTF-8";
req.setCharacterEncoding(charset);
resp.setCharacterEncoding(charset);
//getParts方法获取表单的所有成员.
Collection<Part> parts = req.getParts();
for (Part part : parts) {
// 需要判断当前的part封装的是普通的表单项(文本框,单选按钮......),还是上传域
if (part.getContentType() == null) {
// part的ContentType保存了上传的数据信息,如果为空,代表当前的part封装了普通表单项
System.out.println(">>> 当前的part是普通的表单项目,不是上传域");
} else {
// 如果是上传域,保存上传的数据到指定位置
saveFile(part,req);
}
}
resp.getWriter().write("upload ok");// 回写文本响应,激活ajax的success事件
resp.getWriter().close();
}
private void saveFile(Part part,HttpServletRequest req) throws ServletException, IOException {
String header = part.getHeader("Content-Disposition");
String fileName = header.substring(header.indexOf("filename=\"") + 10,
header.lastIndexOf("\""));
String uploadDir = req.getServletContext().getRealPath("/")+"uploads/";
InputStream in = part.getInputStream();
FileOutputStream os = new FileOutputStream(uploadDir+fileName);
byte[] bytes = new byte[1024];
int len = -1;
// IO读写
while((len=in.read(bytes))!=-1){
os.write(bytes, 0, len);
}
System.out.println(">>> 保存上传文件完成! ");
in.close();
os.close();
}
}
java jquery 单个和多个图片上传的例子
4星 · 超过85%的资源 需积分: 14 79 浏览量
2014-07-25
12:15:59
上传
评论 1
收藏 143KB RAR 举报
小白龙吗
- 粉丝: 0
- 资源: 6
- 1
- 2
- 3
前往页