private void addBook(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String resultPath = "";
String storePath = getServletContext().getRealPath("/files");
try {
Book book = new Book();
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
//解析请求
List<FileItem> items = upload.parseRequest(request);
for(FileItem item:items){
if(item.isFormField()){
//封装数据到JavaBean中
String fieldName = item.getFieldName();//字段名,即javabean的属性名,除了图片
String fieldValue = item.getString(request.getCharacterEncoding());
BeanUtils.setProperty(book, fieldName, fieldValue);//除了图片路径,其他数据都有了
}else{
//处理文件上传
InputStream in = item.getInputStream();
String fileName = item.getName();// c:\dsf\a.jpg
fileName = UUID.randomUUID()+fileName.substring(fileName.lastIndexOf("\\")+1);//a.jpg
//设置存取的图片文件名
book.setImage(fileName);
OutputStream out = new FileOutputStream(storePath+"\\"+fileName);
byte b[] = new byte[1024];
int len = -1;
while((len=in.read(b))!=-1){
out.write(b, 0, len);
}
out.close();
in.close();
item.delete();//删除临时文件
}
}
s.addBook(book);
//查询分类
List<Category> cs = s.findAllCategory();
request.setAttribute("cs", cs);
resultPath = "/manager/addBook.jsp";
request.setAttribute("message", "<script type='text/javascript'>alert('添加成功')</script>");
} catch (Exception e) {
e.printStackTrace();
resultPath = "/message.jsp";
request.setAttribute("message", "服务器忙");
}
request.getRequestDispatcher(resultPath).forward(request, response);
}
//查询所有分类,用于添加书籍时的显示
private void showAllCatetoryUI(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
List<Category> cs = s.findAllCategory();
request.setAttribute("cs", cs);
request.getRequestDispatcher("/manager/addBook.jsp").forward(request, response);
}
表单存在图片上传的情况 servlet表单图片上传
最新推荐文章于 2024-05-11 15:57:21 发布