1. <link rel="stylesheet" type="text/css" href='<c:url value="/uploadify/uploadify.css"/>' />
  2. <script src="<c:url value="/uploadify/jquery.uploadify.min.js"/>"type="text/javascript"></script>
  3. <a class="task_btn_upload" href="javascript:$('#file_upload1').uploadify('upload','*')">开始上传</a>
  4. <input type="file" name="file_upload" id="file_upload"/>
  5.  
  6.  $(function() {  
  7.   $("#file_upload").uploadify({ 
  8.    'auto':false,       //是否允许自动上传
  9.    'swf' : '../uploadify/uploadify.swf?var='
  10.             +(new Date()).getTime(), //引入flash
  11.    'buttonText':'',     //设置button文字
  12.     'removeCompleted': true,//是否移除掉队列中已经完成上传的文件。false为不移除
  13.    'removeTimeout': 3,//设置上传完成后删除掉文件的延迟时间,默认为3秒。
  14.    'width ':'120',      //按钮宽度
  15.    'method':'PSOT',                     //提交方式
  16.    'multi':'true',      //是否多文件上传
  17.    'fileObjName' : 'myFile',   //文件对象名称,用于后台获取文件对象时使用
  18.    'preventCaching':'true',   //防止浏览器缓存
  19.    'formData':{'emergencyId':1111}, //动态传参
  20.    'queueID': 'custom-queue',  //显示在某个div的位置  custom-queue div的id 
  21.    'uploader' : 'emergencyQueryRevision.do?
  22.         method=addAnnex' ,    //提交后台方法路径
  23.    
  24.    //onUploadStart 动态传参的关键
  25.    'onUploadStart':function(){
  26.     $("#file_upload").uploadify("settings","formData",
  27.  {'emergencyId': $("#id").val()});
  28.    },
  29.    'onFallback' : function() {//检测FLASH失败调用  
  30.      alert("您未安装FLASH控件,无法上传图片!请安装FLASH控件后再试。");  
  31.     
  32.     },  
  33.     
  34.     'onUploadSuccess':function(file, data, response){  
  35.       var Data = eval('('+data+')');
  36.              // alert(file.name+"上传"+Data.result);
  37.           },
  38.           
  39.         onError: function(event, queueID, file)   
  40.              {    
  41.               alert(file.name + " 上传失败");    
  42.              },
  43.           'onQueueComplete':function(stats) {  
  44. //版本不一样方法也存在差异
  45.            alert("成功上传的文件数:" + stats.uploadsSuccessful + " =上传出错的文件数:" +stats.uploadsErrored + " -上传的文件总大小:" + stats.uploadSize);
  46.            cancel();
  47.          },
  48.   }); 
  49.   
  50.   });
  51. //上传附件
  52. MultipartHttpServletRequest multipartRequest = 
  53. (MultipartHttpServletRequest) request;  
  54.   MultipartFile file =multipartRequest.getFile("myFile");
  55.   
  56.   //获取服务器地址
  57.   ServletContext sc = request.getSession().getServletContext();
  58.   //附件存放服务器路径
  59.     String dir = sc.getRealPath("/upload/yingjiwuzhi/");
  60.   
  61.   //如果文件夹不存在,则创建文件夹
  62.   if (!new File(dir).exists()){
  63.    new File(dir).mkdirs();
  64.   }
  65.   
  66.    String fileName = file.getOriginalFilename();
  67.    String realName = fileName.substring(0, fileName.indexOf("."));
  68.    //防止文件被覆盖,以纳秒生成文件名称
  69.    Long _l = System.nanoTime();
  70.    String _extName = fileName.substring(fileName.indexOf("."));
  71.    fileName = _l + _extName;
  72.    
  73.    String uploadPath =  request.getContextPath() +
  74.  "/upload/yingjiwuzhi/" + fileName;
  75.    //存储格式为:/项目名/upload/yingjiwuzhi/43038800303864.log
  76.    //存储到数据库的相对路径
  77.    
  78.    
  79.    String responseStr=""; 
  80.          try {
  81.           
  82.    FileUtils.writeByteArrayToFile(new File(dir, fileName),
  83.  file.getBytes());//服务器中生成文件
  84.      responseStr="上传成功";  
  85.    
  86.   } catch (IOException e) {
  87.    // TODO Auto-generated catch block
  88.    e.printStackTrace();
  89.    responseStr="上传失败";  
  90.   }
  91. //删除服务器上的附件
  92. //获取服务器地址
  93.   ServletContext sc = request.getSession().getServletContext();
  94.   //项目名称
  95.   String projectName = request.getContextPath();
  96.   
  97.   String annexId = request.getParameter("annexId");
  98.   String emergencyId = request.getParameter("emergencyId");
  99.   
  100.   //附件路径 存储格式为:/项目名/upload/yingjiwuzhi/43038800303864.log
  101.   String annexPath=request.getParameter("path");
  102.   
  103.   if(!"".equals(annexPath)&&annexPath!=null){
  104.    String path = annexPath.replace(projectName, "");
  105.    String filePath = sc.getRealPath(path.trim());
  106.    
  107.    File file = new File(filePath);
  108.    // 如果文件路径所对应的文件存在,并且是一个文件,则直接删除
  109.    if (file.exists() && file.isFile()) {
  110.     if (file.delete()) {
  111.        map.put("result", "true");
  112.     } else {
  113.      map.put("result", "false");
  114.     }
  115.    } else {
  116.     file.delete();
  117.     map.put("result", "true");
  118.    }
  119.   }

SpringMVC+uploadify3.2.1版实现附件上传功能(直接可以使用)的更多相关文章

  1. Springmvc file多附件上传 显示 删除操作

    之前项目需求要做一个多附件上传 并显示上传文件 带删除操作 一筹莫展之际搜到某个兄弟发的博客感觉非常好用被我copy下来了此贴算是改良版 再次感谢(忘记叫什么了时间也有点久没有历史记录了)先上图 基于 ...

  2. 跟版网 > 织梦教程 > 织梦安装使用 > 织梦DedeCMS附件上传大

    织梦DedeCMS附件上传大小受限制,超过2M就不能上传了,针对此问题按如下方法修改: 1.进入后台→系统设置→系统基本参数→会员设置→会员上传文件大小(K),改成你需要限制的大小: 2.在dede ...

  3. java附件上传下载磁盘版

    ACTION public class UploadAction extends BaseAction { private static final long serialVersionUID = 1 ...

  4. asp.net结合uploadify实现多附件上传

    1.说明 uploadify是一款优秀jQuery插件,主要功能是批量上传文件.大多数同学对多附件上传感到棘手,现将asp.net结合uploadfiy如何实现批量上传附件给大家讲解一下,有什么不对的 ...

  5. 基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用

    大概一年前,我还在用Asp.NET开发一些行业管理系统的时候,就曾经使用这个组件作为文件的上传操作,在随笔<Web开发中的文件上传组件uploadify的使用>中可以看到,Asp.NET中 ...

  6. 使用plupload做一个类似qq邮箱附件上传的效果

    公司项目中使用的框架是springmvc+hibernate+spring,目前需要做一个类似qq邮箱附件上传的功能,暂时只是上传小类型的附件 处理过程和解决方案都需要添加附件,处理过程和解决方案都可 ...

  7. 基于MVC4+EasyUI的Web开发框架形成之旅(4)--附件上传组件uploadify的使用

    大概一年前,我还在用Asp.NET开发一些行业管理系统的时候,就曾经使用这个组件作为文件的上传操作,在随笔<Web开发中的文件上传组件uploadify的使用>中可以看到,Asp.NET中 ...

  8. (转)基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用

    http://www.cnblogs.com/wuhuacong/p/3343967.html 大概一年前,我还在用Asp.NET开发一些行业管理系统的时候,就曾经使用这个组件作为文件的上传操作,在随 ...

  9. SpringMVC入手项目注解版

    SpringMVC入手项目注解版 1.创建Maven项目在pom.xml文件引入相关的依赖 <dependencies> <dependency> <groupId> ...

随机推荐

  1. Linq怎么支持Monad

    在上一篇创建了我们的第一个Monad, Identity<T>. 我们确定了类型要变成Monad, 它必须有一个type constructor(Identity<T>), 和 ...

  2. Vue.js 2 vs Vue.js 3的实现 – 云栖社区

    Vue.js 2 vs Vue.js 3的实现 – 云栖社区 vue.js核心团队已经讨论过将在Vue3实现的变化.虽然API不会改变,但是数据响应机制(译者注:对数据改变的监听和通知)发生了变化.这 ...

  3. 基于jQuery封装一个瀑布流插件

    /*封装一个瀑布流插件*/ (function($){ $.fn.WaterFall = function(){ /*这是你初始化 调用这个方法的时候的 那个jquery选着到的dom对象 this* ...

  4. C#中null、""、string.empty区别

    (1)NULLnull 关键字是表示不引用任何对象的空引用的文字值.null 是引用类型变量的默认值.那么也只有引用型的变量可以为NULL,如果int i=null,的话,是不可以的,因为Int是值类 ...

  5. 使用Storm实现实时大数据分析!

    随着数据体积的越来越大,实时处理成为了许多机构需要面对的首要挑战.Shruthi Kumar和Siddharth Patankar在Dr.Dobb's上结合了汽车超速监视,为我们演示了使用Storm进 ...

  6. 统计之都 http://cos.name/

    http://cos.name/ IMS:一个洲际人际交流网络(为学生免费提供会员资格) 原文链接:http://cos.name/2014/07/ims-a-cross-continent-huma ...

  7. required输入框为必填项

    required <input type="text" placeholder="cat photo URL" required>

  8. 如何检查Windows网络通信端口占用

    最近本地测试jsp程序发现tomcat启动失败,无法监听8080端口,也没记得别的什么程序占用了8080端口,干脆就改成了8090端口先用着.今天找了找Windows上查看网络通信端口占用的方法. 先 ...

  9. Echarts堆积柱状图排序问题

    Echarts堆积柱状图排序是按照堆积柱状图的柱子高度进行从大到小(或者从小到大)进行排序,方便查阅各坐标情况.以下是我自己研发的方法,有不对的地方敬请谅解,随时欢迎指教. 排序后效果如下图: (1) ...

  10. 正则表达式和豆瓣Top250的爬取练习

    datawhale任务2-爬取豆瓣top250 正则表达式 豆瓣250页面分析 完整代码 参考资料 正则表达式 正则表达式的功能用于实现字符串的特定模式精确检索或替换操作. 常用匹配模式 常用修饰符 ...