jsp+servletとSSMはそれぞれファイルアップロードをどのように実現するか(例)


作者の个人分享网:分享时间【www.itison.cn】
以下に、jsp+servletとSSMがそれぞれファイルアップロードを実現する方法の例を示します.
2つのモードのupload.jspファイルはすべて同じです(enctype=「multipart/form-data」を加えることに注意してください).





Insert title here



	

従来のjsp+servlet開発によりアップロードを実現した.JAvaのdoPost()は次のとおりです.
/**
 * The doPost method of the servlet. 
* * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;chartset=utf-8"); request.setCharacterEncoding("utf-8"); // String value = null; // String fileName = null; // String filePath = request.getSession().getServletContext().getRealPath("/upload"); // 1. if(ServletFileUpload.isMultipartContent(request)){ // 2. fileItem FileItemFactory factory = new DiskFileItemFactory(); // 3. ServletFileUpload sfu = new ServletFileUpload(factory); // 4. List fileItemList = null; try { fileItemList = sfu.parseRequest(request); } catch (FileUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); } for(FileItem f : fileItemList){ if(f.isFormField()){// String name = f.getFieldName(); if(name.equals("username")){ value = f.getString("utf-8"); } }else{// fileName = f.getName(); File file = new File(filePath + "/" + fileName); try { f.write(file); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } response.getWriter().print(value + " " + fileName + " !"); } } } }

SSMフレームワークは主にspring MVCプロセッサがアップロードコンポーネントをカプセル化し、コードが多くのプロセッサでアップロードファイルを処理する方法を簡略化した.
/**
*     
 *TODO
 *LIU
 * @param request
 * @param response
 * @return
 *  10:34:15
 */
@RequestMapping("uploadFile.action")
public ModelAndView uploadFile(@RequestParam("uploadfile") CommonsMultipartFile cmf, HttpServletRequest request) throws Exception{
	
	//           ,   request   
	String uname = request.getParameter("uname");
	String path = "F:\\upload\\" + cmf.getOriginalFilename();
	File file = new File(path);
	
	cmf.transferTo(file);
	
	mav = new ModelAndView("uploadResult.jsp");
	String mess = cmf.getOriginalFilename() + "     !";
	mav.addObject("mess", mess);
	mav.addObject("uname", uname);
	return mav;
}