jsp+servletとSSMはそれぞれファイルアップロードをどのように実現するか(例)
作者の个人分享网:分享时间【www.itison.cn】
以下に、jsp+servletとSSMがそれぞれファイルアップロードを実現する方法の例を示します.
2つのモードのupload.jspファイルはすべて同じです(enctype=「multipart/form-data」を加えることに注意してください).
従来のjsp+servlet開発によりアップロードを実現した.JAvaのdoPost()は次のとおりです.
SSMフレームワークは主にspring MVCプロセッサがアップロードコンポーネントをカプセル化し、コードが多くのプロセッサでアップロードファイルを処理する方法を簡略化した.
以下に、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;
}