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页面源码

  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>
  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>
  1. <div class="demo" style="display:none" id="upload_file">
  2. <p><strong>文件上传</strong></p>
  3. <input id="upload" name="upload" type="file" />
  4. <a href="javascript:$('#upload').uploadifyUpload();">开始上传</a> | <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源码

  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. }

效果图 
 

在Struts2中使用Uploadify组件上传文件的更多相关文章

  1. 前台利用jcrop做头像选择预览,后台通过django利用Uploadify组件上传图最终使用PIL做图像裁切

    之前一直使用python的PIL自定义裁切图片,今天有需求需要做一个前端的选择预览页面,索性就把这个功能整理一下,分享给大家. 实现思路: 1.前端页面: 用户选择本地一张图片,然后通过鼠标缩放和移动 ...

  2. mvc中使用uploadify批量上传的应用

    网上找了很多资料都没有发现一个好用.可以用的uploadify批量上传的应用,这里通过官方和自己的一些项目需要整理了一个出来. 希望能帮助到需要的人. 效果图:

  3. 使用commons-fileUpload组件上传文件

    在近期的一个项目中有用到commons-fileUpload组件进行实现文件上传的功能(由于没用到框架),在使用的过程中有遇到一些问题,经过自己的琢磨也算顺利地将其解决了,在这里做个记录. 一.com ...

  4. node.js+react全栈实践-Form中按照指定路径上传文件并

    书接上回,讲到“使用同一个新增弹框”中有未解决的问题,比如复杂的字段,文件,图片上传,这一篇就解决文件上传的问题.这里的场景是在新增弹出框中要上传一个图片,并且这个上传组件放在一个Form中,和其他文 ...

  5. EasyUI 关于IE使用window组件上传文件

    有时候IE会对使用window组件上传文件(第二次)不生效,解决方案是: 将该window每次打开的时候,使用: $('#adUploadWindow').window('refresh', 'pan ...

  6. 关于commons-fileupload组件上传文件中文名乱码问题

    java web开发,常用到的文件上传功能,常用的commons-fileupload和commons-io两个jar包.关于如何使用这两个jar来完成文件上传的功能,这里不做详解.使用commons ...

  7. uploadify+批量上传文件+java

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  8. javaweb-番外篇-Commons-FileUpload组件上传文件

    一.Commons-FileUpload简介 Commons-FileUpload组件 Commons是Apache开放源代码组织的一个Java子项目,其中的FileUpload是用来处理HTTP文件 ...

  9. Ant Design Upload 组件上传文件到云服务器 - 七牛云、腾讯云和阿里云的分别实现

    在前端项目中经常遇到上传文件的需求,ant design 作为 react 的前端框架,提供的 upload 组件为上传文件提供了很大的方便,官方提供的各种形式的上传基本上可以覆盖大多数的场景,但是对 ...

随机推荐

  1. 利用扩展双屏技术及Chrome浏览器,高速剖析优秀网页Div及CSS构成,并高效实现原型创作

    作为一个Web前台设计人员,应该充分利用可利用的硬件条件及专业的软件工具,迅速进入到高效氛围其中.实践中,我们能够利用扩展桌面双屏技术及Chrome浏览器高速剖析优秀网页Div及CSS构成,并高速实现 ...

  2. windows下删除服务的方法

    删除的办法有两个: 办法一: 用sc.exe这个Windows命令 开始——运行——cmd.exe,然后输入sc就可以看到了.使用办法很简单: sc delete "服务名" (如 ...

  3. Oracle SQL ANY和ALL语句

    Oracle的嵌套子查询可以使用Some,Any和All对子查询中返回的多行结果进行处理. Some表示满足其中一个的含义,是用or串起来的比较从句. 例如:SELECT * FROM emp WHE ...

  4. 一张图看懂dex

    最近在看dex文件格式,看的是飞虫大大的android软件安全与逆向分析一书,写的条理很清晰.相对于elf文件来说,dex文件格式简单了很多,但是提到某个字段,仍然难以想象其所处位置.所以一直想用思维 ...

  5. easyui-combobox默认值绑定

    $('#combox_role').combobox({ panelHeight: , url: '../../Handler/GetComboxItems.ashx?type=0', valueFi ...

  6. compilation 元素(ASP.NET 设置架构)

    配置 ASP.NET 用于编译应用程序的所有编译设置. <configuration> 元素  system.web 元素(ASP.NET 设置架构)    compilation 元素( ...

  7. Mac_配置adb环境变量

    1.打开终端Terminal. 2.进入HOME目录:命令行输入 echo(这之间有一个空格) $HOME 3.创建.bash_profile文件:命令行输入 touch(这之间有一个空格).bash ...

  8. AngularJs练习Demo8 自定义过滤器

    @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport&quo ...

  9. (二)原生JS实现 - 事件类方法

    事件处理 - 添加事件 var addEventHandler = function (oTarget, sEventType, fnHandler) { if (oTarget.addEventLi ...

  10. Android studio快捷键Mac版本

    为了方便大家记住这些小技巧和快捷键,我把它写成了一个插件,欢迎大家下载使用:http://chunsheng.me/EasyShortcut/ 快捷键 描述 通用------------------- ...