分享

springMVC单个文件上传

 huowufenghuang 2015-12-24
  1. <form id="uploadForm" action="upload.html" method="post" enctype="multipart/form-data">  
  2.     <table>  
  3.         <tr>  
  4.             <td>文件</td>  
  5.             <td><input type="file" name="file"></td>  
  6.         </tr>  
  7.         <tr>  
  8.             <td colspan="2" align="center">  
  9.                 <button type="button" onclick="doUpload()">上传</button>  
  10.                 <button type="button" onclick="hide('upload')">返回</button>  
  11.             </td>  
  12.         </tr>  
  13.     </table>  
  14. </form>  


[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
  1. function doUpload(){  
  2.     if(uploadFormValidateor.form()){  
  3.         var fileName = $("#uploadForm").find("input[type=file]")[0].value;  
  4.         $.ajax({  
  5.             url:"<%=request.getContextPath()%>/ajax/exists.html",  
  6.             data:{  
  7.                 where:"ME_FILE where lower(FILE_NAME) = lower('" + fileName + "')"  
  8.             },  
  9.             success:function(num){  
  10.                 var cover;  
  11.                 if(num != "0") {  
  12.                     if(confirm("已经存在该文件,是否覆盖原文件?")){  
  13.                         cover = "true";  
  14.                     }else{  
  15.                         return false;  
  16.                     }  
  17.                 }  
  18.                 $("#uploadForm").ajaxSubmit({  
  19.                     data:{"cover":cover},  
  20.                     success:function(data){  
  21.                         if(data == "success") {  
  22.                             $("#searchForm").submit();  
  23.                         }else{  
  24.                             alert("上传失败");  
  25.                         }  
  26.                     }  
  27.                  });  
  28.             }  
  29.         });  
  30.     }  
  31. }  

  1. @RequestMapping("upload")  
  2. @ResponseBody  
  3. public String upload(HttpServletRequest request){  
  4.     MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;    
  5.        CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest.getFile("file");    
  6.     String realFileName = file.getOriginalFilename();    
  7.     String destDir = request.getServletContext().getRealPath("/") + Constant.FILE_PATH;  
  8.     File uploadFile;  
  9.     try {  
  10.         File dir = new File(destDir);  
  11.         if(!dir.exists()){  
  12.             dir.mkdir();  
  13.         }  
  14.         uploadFile = new File(destDir + realFileName);  
  15.         file.getFileItem().write(uploadFile);  
  16.     } catch (Exception e) {  
  17.         // TODO Auto-generated catch block  
  18.         e.printStackTrace();  
  19.         return "failure";  
  20.     }  
  21.     Map<String,Object> map = new HashMap<String,Object>();  
  22.     String cover = request.getParameter("cover");  
  23.     int i = 0;  
  24.     if(cover != null && cover.equals("true")){  //存在则更新文件信息  
  25.         map.put("fileName", realFileName);  
  26.         map.put("fileSize", file.getSize());  
  27.         map.put("uploadDate", DateUtils.getDate());  
  28.         map.put("uploadTime", DateUtils.getTime());  
  29.           
  30.         i = MybatisUtils.update("file.mysql.updateFileByName", map);  
  31.         if(i == 0){  
  32.             return "failure";  
  33.         }  
  34.     }else{  
  35.         map.put("fileId", UUID.randomUUID().toString());  
  36.         map.put("fileName", realFileName);  
  37.         map.put("fileType", realFileName.substring(realFileName.lastIndexOf(".") + 1));  
  38.         map.put("fileSize", file.getSize());  
  39.         map.put("uploadDate", DateUtils.getDate());  
  40.         map.put("uploadTime", DateUtils.getTime());  
  41.           
  42.         i = MybatisUtils.insert("file.mysql.insertFile", map);  
  43.         if(i == 0){  
  44.             // 操作数据失败,把上传的文件删除  
  45.             uploadFile.delete();  
  46.             return "failure";  
  47.         }  
  48.     }  
  49.     System.out.println(uploadFile.getAbsolutePath());  
  50.     return "success";  
  51. }  

根据文件名判断是否已存在文件,提示是否要覆盖,覆盖则更新文件信息;如果文件不存在则向数据插一条上传文件信息。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约