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. [原创]Web前端开发——让ie 7 8支持表单的placeholder属性

    今天在写页面的时候,测试低版本浏览器时,发现input写的placeholder显示的是空白,所以特意写了一个普遍试用的方法来让低版本浏览器支持这个属性. 博主建了一个技术共享qq群:,因为目前人数还 ...

  2. jsf标签,jsp标签与jstl标签

    JSF通过定制标签与JSP集成.之前展示过的所有 JSF标签,<h:inputText>.<h:outputText>.<h:form> 和<f:view&g ...

  3. Oracle数据库的创建与验证

    创建数据库,输入命令dbca创建数据库 会弹出创建数据库相应的对话框 单击下一步 选择创建一个数据库,并单击下一步 数据库模板选择一般目的的转换过程即可.单击下一步 全局数据库名称和SID名称,要和上 ...

  4. ubuntu16.04 server安装小记

    由于本人有一台闲置的thinkpad电脑,所以打算在上边安装一个ubuntu16.04 server版本,其中遇到主要问题,做一下记录: 安装过程中出现“ubuntu16.04 server64 bu ...

  5. resin安装和配置

    1 从 http://www.caucho.com/download/ 下载resin 2 检查你的linux环境,查看是否安装了 jdk1.5 或以上版本,是否安装了perl. 输入命令:Java ...

  6. ASP.NET MVC请求处理过程

  7. Android ----------获取各种路径(更新中。。。。。。)

    ##在手机中的路径 *获取应用的路径,形式:/data/data/包名 String appDataDir = getApplicationInfo().dataDir; *获取手机数据存储路径,即/ ...

  8. 11 java 反射机制

    Java反射机制的适用场景及其利与弊: http://blog.csdn.net/zolalad/article/details/29370565 http://my.oschina.net/u/10 ...

  9. windows新的数据类型

    1.简单重定义的 如LPCSTR只字符串,只是名字不同 2.句柄类型 H开头的句柄 3.结构体类型 如对话框 4.重新更名一方面为了32位->64位升级时带来的麻烦 typedef unsign ...

  10. jade的基本语法

    - for (var i=0;i<3;i++) li scnu-learn //这里的=,默认会转义内容 p= "Welcome scnu <strong>good< ...