- <form id="uploadForm" action="upload.html" method="post" enctype="multipart/form-data">
- <table>
- <tr>
- <td>文件</td>
- <td><input type="file" name="file"></td>
- </tr>
- <tr>
- <td colspan="2" align="center">
- <button type="button" onclick="doUpload()">上传</button>
- <button type="button" onclick="hide('upload')">返回</button>
- </td>
- </tr>
- </table>
- </form>
- function doUpload(){
- if(uploadFormValidateor.form()){
- var fileName = $("#uploadForm").find("input[type=file]")[0].value;
- $.ajax({
- url:"<%=request.getContextPath()%>/ajax/exists.html",
- data:{
- where:"ME_FILE where lower(FILE_NAME) = lower('" + fileName + "')"
- },
- success:function(num){
- var cover;
- if(num != "0") {
- if(confirm("已经存在该文件,是否覆盖原文件?")){
- cover = "true";
- }else{
- return false;
- }
- }
- $("#uploadForm").ajaxSubmit({
- data:{"cover":cover},
- success:function(data){
- if(data == "success") {
- $("#searchForm").submit();
- }else{
- alert("上传失败");
- }
- }
- });
- }
- });
- }
- }
- @RequestMapping("upload")
- @ResponseBody
- public String upload(HttpServletRequest request){
- MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
- CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest.getFile("file");
- String realFileName = file.getOriginalFilename();
- String destDir = request.getServletContext().getRealPath("/") + Constant.FILE_PATH;
- File uploadFile;
- try {
- File dir = new File(destDir);
- if(!dir.exists()){
- dir.mkdir();
- }
- uploadFile = new File(destDir + realFileName);
- file.getFileItem().write(uploadFile);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- return "failure";
- }
- Map<String,Object> map = new HashMap<String,Object>();
- String cover = request.getParameter("cover");
- int i = 0;
- if(cover != null && cover.equals("true")){ //存在则更新文件信息
- map.put("fileName", realFileName);
- map.put("fileSize", file.getSize());
- map.put("uploadDate", DateUtils.getDate());
- map.put("uploadTime", DateUtils.getTime());
-
- i = MybatisUtils.update("file.mysql.updateFileByName", map);
- if(i == 0){
- return "failure";
- }
- }else{
- map.put("fileId", UUID.randomUUID().toString());
- map.put("fileName", realFileName);
- map.put("fileType", realFileName.substring(realFileName.lastIndexOf(".") + 1));
- map.put("fileSize", file.getSize());
- map.put("uploadDate", DateUtils.getDate());
- map.put("uploadTime", DateUtils.getTime());
-
- i = MybatisUtils.insert("file.mysql.insertFile", map);
- if(i == 0){
- // 操作数据失败,把上传的文件删除
- uploadFile.delete();
- return "failure";
- }
- }
- System.out.println(uploadFile.getAbsolutePath());
- return "success";
- }
根据文件名判断是否已存在文件,提示是否要覆盖,覆盖则更新文件信息;如果文件不存在则向数据插一条上传文件信息。
|