SpringMVC+uploadify3.2.1版实现附件上传功能

前端之家收集整理的这篇文章主要介绍了SpringMVC+uploadify3.2.1版实现附件上传功能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

 $(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");
   }
  }

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

原文链接:https://www.f2er.com/springmvc/461103.html

猜你在找的SpringMVC相关文章