zoukankan      html  css  js  c++  java
  • 在Struts2中使用Uploadify组件上传文件

    Uploadify是一个基于Jquery的文件上传组件,官网http://www.uploadify.com/可以在官网获得该组件,运行演示示例,下载帮助文档。 
        作为Web前端的增强技术,Jquery给用户以更好的体验和交互,增强富互联网客户端特效,而基于Jquery的Uploadify更是将文件上传效果发挥到极致。 
        一个项目下,需要开发一个上传文件的应用,项目基于Struts2,传统使用input标签的file属性上传是同步的,没有实时效果的。为了增强体验,一个偶然的机会让我发现了这个组件Uploadify。但是官方仅提供基于PHP的上传源码,那么在Struts2下的,就得自行研究了。 
        废话不多说,让我们一步一步领略Uploadify带来的不同感受。 
    1.支持的文件 
    jquery.js,jquery.uploadify.js,uploadify.css;怎获得就不多说了。 
    2.HTML页面源码 
    Html代码  收藏代码
    1. <style type="text/css">  
    2. div.demo {  
    3.     padding: 20px;  
    4.     border: 1px solid #E5E5E5;  
    5.     margin-bottom: 20px;  
    6.     #FFFFFF;  
    7. }  
    8. </style>  


    Js代码  收藏代码
    1. <script language="javascript" src="/js/swfobject.js"></script>  
    2. <script type="text/javascript">  
    3. $(document).ready(function() {  
    4.     $("#upload").uploadify({        'uploader'       : '${base}/images/swf/uploadify.swf',  
    5.     'script'         : 'disk!uploadFile.action',  
    6.     'cancelImg'      : '${base}/images/cancel.png',  
    7.     'fileDataName'   : 'upload',  
    8.     'folder'         : '/',  
    9.     'displayData'    : 'speed',  
    10.     'buttonText'     : 'Browse Files',  
    11.     'auto'           : false,  
    12.     'multi'          : true,  
    13.     'sizeLimit'      : 1073741824,  
    14.     'simUploadLimit' : 3  
    15.     });  
    16. });  
    17. </script>  


    Html代码  收藏代码
    1. <div class="demo" style="display:none" id="upload_file">  
    2. <p><strong>文件上传</strong></p>  
    3. <input id="upload" name="upload" type="file" />  
    4. <href="javascript:$('#upload').uploadifyUpload();">开始上传</a> | <href="javascript:$('#upload').uploadifyClearQueue();">清除队列</a>  
    5. </div>  
    解释: 
    1).css是文件上传框的效果,不多说 
    2).重点是JS代码,基于Jquery的技术,函数头就不多解释了。 
        uploader:是组件自带的flash,用于打开选取本地文件的按钮 
        scrpit:处理上传的路径,这里使用Struts2,当然是XXX.action 
        cancelImg:取消上传文件的按钮图片,就是个叉叉 
        fileDataName:和input的name属性值保持一致就好,Struts2就能处理了 
        folder:没研究这个,根据帮助文档就写上/ 
        displayData:有speed和percentage两种,一个显示速度,一个显示完成百分比 
        buttonText:出现在Flash上的文字,暂时还不支持中文 
        auto:是否选取文件后自动上传 
        multi:是否支持多文件上传 
        sizeLimit:限制文件的大小,这里是1G,做测试 
        simUploadLimit:每次最大上传文件数 
    3).最后的html段提供两个功能按钮,点击开始上传和清除上传队列 
    3.Action源码 
    Java代码  收藏代码
    1.     private File upload;//和HTML中input标记name同名  
    2.     private String uploadFileName;//Struts2拦截器获得的文件名  
    3.     public void setUpload(File upload) {  
    4.         this.upload = upload;  
    5.     }  
    6.     public void setUploadFileName(String uploadFileName) {  
    7.         this.uploadFileName = uploadFileName;  
    8.     }  
    9. public String uploadFile() throws Exception {  
    10.                   //省略数据处理步骤  
    11.         upload.renameTo(new File(realURL));  
    12.                   //省略数据库写入步骤  
    13.         return "uploadFile";  
    14.     }  


    效果图 
     
  • 相关阅读:
    类加载,初始化
    jvm classLoader architecture
    只选择年份的下拉菜单
    spring框架学习(二)依赖注入
    spring框架学习(一)
    JSP 过滤器
    JSP9个内置对象
    JSP 动作元素
    众数
    基于excel9.h的excel处理
  • 原文地址:https://www.cnblogs.com/huangcongcong/p/4753980.html
Copyright © 2011-2022 走看看