SpringMVC+uploadify3.2.1版实现附件上传功能详解编程语言

 $(function() {   
  $("#file_upload").uploadify({  
   'auto':false,       //是否允许自动上传 
   'swf' : '../uploadify/uploadify.swf?var=' 
            +(new Date()).getTime(), //引入flash 
   'buttonText':'',     //设置button文字 
   'width ':'120',      //按钮宽度 
   'method':'PSOT',                     //提交方式 
   'multi':'true',      //是否多文件上传 
   'fileObjName' : 'myFile',   //文件对象名称,用于后台获取文件对象时使用 
   'preventCaching':'true',   //防止浏览器缓存 
   'formData':{'emergencyId':1111}, //动态传参 
   'queueID': 'custom-queue', 
   'uploader' : 'emergencyQueryRevision.do? 
        method=addAnnex' ,    //提交后台方法路径 
    
   //onUploadStart 动态传参的关键 
   'onUploadStart':function(){ 
    $("#file_upload").uploadify("settings","formData", 
 {'emergencyId': $("#id").val()}); 
   }, 
   'onFallback' : function() {//检测FLASH失败调用   
     alert("您未安装FLASH控件,无法上传图片!请安装FLASH控件后再试。");   
     
    },   
     
    'onUploadSuccess':function(file, data, response){   
      var Data = eval('('+data+')'); 
             // alert(file.name+"上传"+Data.result); 
          }, 
           
        onError: function(event, queueID, file)    
             {     
              alert(file.name + " 上传失败");     
             }, 
          'onQueueComplete':function(stats) {   
//版本不一样方法也存在差异 
           alert("成功上传的文件数:" + stats.uploadsSuccessful + " =上传出错的文件数:" +stats.uploadsErrored + " -上传的文件总大小:" + stats.uploadSize); 
           cancel(); 
         }, 
  });  
   
  });
//上传附件 
MultipartHttpServletRequest multipartRequest =  
(MultipartHttpServletRequest) request;   
  MultipartFile file =multipartRequest.getFile("myFile"); 
   
  //获取服务器地址 
  ServletContext sc = request.getSession().getServletContext(); 
  //附件存放服务器路径 
    String dir = sc.getRealPath("/upload/yingjiwuzhi/"); 
   
  //如果文件夹不存在,则创建文件夹 
  if (!new File(dir).exists()){ 
   new File(dir).mkdirs(); 
  } 
   
   String fileName = file.getOriginalFilename(); 
   String realName = fileName.substring(0, fileName.indexOf(".")); 
   //防止文件被覆盖,以纳秒生成文件名称 
   Long _l = System.nanoTime(); 
   String _extName = fileName.substring(fileName.indexOf(".")); 
   fileName = _l + _extName; 
    
   String uploadPath =  request.getContextPath() + 
 "/upload/yingjiwuzhi/" + fileName; 
   //存储格式为:/项目名/upload/yingjiwuzhi/43038800303864.log 
   //存储到数据库的相对路径 
    
    
   String responseStr="";  
         try { 
           
   FileUtils.writeByteArrayToFile(new File(dir, fileName), 
 file.getBytes());//服务器中生成文件 
     responseStr="上传成功";   
    
  } catch (IOException e) { 
   // TODO Auto-generated catch block 
   e.printStackTrace(); 
   responseStr="上传失败";   
  }
//删除服务器上的附件 
//获取服务器地址 
  ServletContext sc = request.getSession().getServletContext(); 
  //项目名称 
  String projectName = request.getContextPath(); 
   
  String annexId = request.getParameter("annexId"); 
  String emergencyId = request.getParameter("emergencyId"); 
   
  //附件路径 存储格式为:/项目名/upload/yingjiwuzhi/43038800303864.log 
  String annexPath=request.getParameter("path"); 
   
  if(!"".equals(annexPath)&&annexPath!=null){ 
   String path = annexPath.replace(projectName, ""); 
   String filePath = sc.getRealPath(path.trim()); 
    
   File file = new File(filePath); 
   // 如果文件路径所对应的文件存在,并且是一个文件,则直接删除 
   if (file.exists() && file.isFile()) { 
    if (file.delete()) { 
       map.put("result", "true"); 
    } else { 
     map.put("result", "false"); 
    } 
   } else { 
    file.delete(); 
    map.put("result", "true"); 
   } 
  }

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/7996.html

(0)
上一篇 2021年7月18日
下一篇 2021年7月18日

相关推荐

发表回复

登录后才能评论