在Struts2中使用Uploadify组件上传文件
作为Web前端的增强技术,Jquery给用户以更好的体验和交互,增强富互联网客户端特效,而基于Jquery的Uploadify更是将文件上传效果发挥到极致。
一个项目下,需要开发一个上传文件的应用,项目基于Struts2,传统使用input标签的file属性上传是同步的,没有实时效果的。为了增强体验,一个偶然的机会让我发现了这个组件Uploadify。但是官方仅提供基于PHP的上传源码,那么在Struts2下的,就得自行研究了。
废话不多说,让我们一步一步领略Uploadify带来的不同感受。
1.支持的文件
jquery.js,jquery.uploadify.js,uploadify.css;怎获得就不多说了。
2.HTML页面源码
- <style type="text/css">
- div.demo {
- padding: 20px;
- border: 1px solid #E5E5E5;
- margin-bottom: 20px;
- #FFFFFF;
- }
- </style>
- <script language="javascript" src="/js/swfobject.js"></script>
- <script type="text/javascript">
- $(document).ready(function() {
- $("#upload").uploadify({ 'uploader' : '${base}/images/swf/uploadify.swf',
- 'script' : 'disk!uploadFile.action',
- 'cancelImg' : '${base}/images/cancel.png',
- 'fileDataName' : 'upload',
- 'folder' : '/',
- 'displayData' : 'speed',
- 'buttonText' : 'Browse Files',
- 'auto' : false,
- 'multi' : true,
- 'sizeLimit' : 1073741824,
- 'simUploadLimit' : 3
- });
- });
- </script>
- <div class="demo" style="display:none" id="upload_file">
- <p><strong>文件上传</strong></p>
- <input id="upload" name="upload" type="file" />
- <a href="javascript:$('#upload').uploadifyUpload();">开始上传</a> | <a href="javascript:$('#upload').uploadifyClearQueue();">清除队列</a>
- </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源码
- private File upload;//和HTML中input标记name同名
- private String uploadFileName;//Struts2拦截器获得的文件名
- public void setUpload(File upload) {
- this.upload = upload;
- }
- public void setUploadFileName(String uploadFileName) {
- this.uploadFileName = uploadFileName;
- }
- public String uploadFile() throws Exception {
- //省略数据处理步骤
- upload.renameTo(new File(realURL));
- //省略数据库写入步骤
- return "uploadFile";
- }
效果图
在Struts2中使用Uploadify组件上传文件的更多相关文章
- 前台利用jcrop做头像选择预览,后台通过django利用Uploadify组件上传图最终使用PIL做图像裁切
之前一直使用python的PIL自定义裁切图片,今天有需求需要做一个前端的选择预览页面,索性就把这个功能整理一下,分享给大家. 实现思路: 1.前端页面: 用户选择本地一张图片,然后通过鼠标缩放和移动 ...
- mvc中使用uploadify批量上传的应用
网上找了很多资料都没有发现一个好用.可以用的uploadify批量上传的应用,这里通过官方和自己的一些项目需要整理了一个出来. 希望能帮助到需要的人. 效果图:
- 使用commons-fileUpload组件上传文件
在近期的一个项目中有用到commons-fileUpload组件进行实现文件上传的功能(由于没用到框架),在使用的过程中有遇到一些问题,经过自己的琢磨也算顺利地将其解决了,在这里做个记录. 一.com ...
- node.js+react全栈实践-Form中按照指定路径上传文件并
书接上回,讲到“使用同一个新增弹框”中有未解决的问题,比如复杂的字段,文件,图片上传,这一篇就解决文件上传的问题.这里的场景是在新增弹出框中要上传一个图片,并且这个上传组件放在一个Form中,和其他文 ...
- EasyUI 关于IE使用window组件上传文件
有时候IE会对使用window组件上传文件(第二次)不生效,解决方案是: 将该window每次打开的时候,使用: $('#adUploadWindow').window('refresh', 'pan ...
- 关于commons-fileupload组件上传文件中文名乱码问题
java web开发,常用到的文件上传功能,常用的commons-fileupload和commons-io两个jar包.关于如何使用这两个jar来完成文件上传的功能,这里不做详解.使用commons ...
- uploadify+批量上传文件+java
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- javaweb-番外篇-Commons-FileUpload组件上传文件
一.Commons-FileUpload简介 Commons-FileUpload组件 Commons是Apache开放源代码组织的一个Java子项目,其中的FileUpload是用来处理HTTP文件 ...
- Ant Design Upload 组件上传文件到云服务器 - 七牛云、腾讯云和阿里云的分别实现
在前端项目中经常遇到上传文件的需求,ant design 作为 react 的前端框架,提供的 upload 组件为上传文件提供了很大的方便,官方提供的各种形式的上传基本上可以覆盖大多数的场景,但是对 ...
随机推荐
- 【hoj】1604 cable master
简单,二分法,可是在oj上交的时候会有精度的限制,所以仅仅能把数扩得大一点,并且在扩的时候为防止尾数会自己主动生成一些非零数,所以还是自己吧扩到的位置设置为0,还有输出时由于%.2lf会自己有4设5入 ...
- DB2数据库全系列版本安装介质下载地址
网盘:http://pan.baidu.com/s/1qWE4D7A? ... qq-pf-to=pcqq.group官方:http://www-01.ibm.com/support/docview. ...
- ADO.Net总结
ADO.NET简介 一. ADO.NET的组成(ADO.NET是什么?能干什么)客户体验 ADO.NET就是一组类库可以让我们通过程序的方式访问数据库 ADO.NET主要包括5个对象, ...
- rsync数据同步配置
环境配置 操作系统:centos6.4_64bit A服务器IP:192.168.6.128 B服务器IP:192.168.6.129 以A服务器为基准,将A服务器文件同步到B服务器. 步骤如下: 开 ...
- utf-8的mysql表笔记
链接数据库指定编码集jdbc:mysql://192.168.2.33:3306/mybase?useUnicode=true&characterEncoding=UTF-8 mysql默认链 ...
- HTML5画布(线条、渐变)
绘制直线时,一般会用到moveTo与lineTo两种方法. 案例1: <!DOCTYPE html><html><head lang="en"> ...
- Lua 字符串 匹配模式 总结
字符类 %a --字母alpha %d --数字double %l --小写字母lower %u --大写字母upper %w --字母和数字word %x -- 十六进制 %z --代表0 zero ...
- 手机user agent大全下载 整理发布一批移动设备的user agent【分享】
手机user agent大全下载 整理发布一批移动设备的user agent[分享] 很多人朋友在玩浏览器的时候 或者写软件的时候需要用到 user agent 这个东西 修改这个 可以使自己的浏览器 ...
- (转)css中通常会用到浮动与清除,也是一个必须掌握的知识点,概念性的东西不多说,下面举几个例子,来说明它的用法:1.文字环绕效果 2.多个div并排显示 3.清除浮动(默认显示)
一.文字环绕效果: html代码如下: 1 <body> 2 3 <style type="text/css"> 4 #big img {float: le ...
- python描述符 descriptor
descriptor 在python中,如果一个新式类定义了__get__, __set__, __delete__方法中的一个或者多个,那么称之为descriptor.descriptor通常用来改 ...