在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 组件为上传文件提供了很大的方便,官方提供的各种形式的上传基本上可以覆盖大多数的场景,但是对 ...
随机推荐
- javascript实现的有缩略图功能的幻灯片切换效果
不久前写了一个简单的图片效果,没想到那么快就要用到项目中,所以功能方面要丰富一下: 主要改进: 1# 用圆点代替之前简单的页数显示,并且点击圆点可以显示对应图片: 2# 点击圆点,显示对应图片的缩略图 ...
- iPhone应用提交流程:如何将App程序发布到App Store?
对于刚加入iOS应用开发行列的开发者来说,终于经过艰苦的Coding后完成了第一个应用后最重要的历史时刻就是将应用程序提交到iTunes App Store.Xcode 4.2开发工具已经把App提交 ...
- Android Studio使用技巧系列教程(二)
尊重劳动成果,转载请注明出处:http://blog.csdn.net/growth58/article/details/46764575 关注新浪微博:@于卫国 邮箱:yuweiguocn@gmai ...
- java基础之成员变量与局部变量
成员变量的含义 局部变量的含义 成员变量与局部变量的区别
- 今天上传公司服务器出现的.net framework版本错误问题
今天做好一个网站(.net4.0),里面有静态页面也有aspx页面,发布后,满心欢喜的上传到服务器,运行后,静态页没有问题,可是通过导航栏一旦点击进入aspx页面,就会出现错误 ,提示web.conf ...
- 浅析 JavaScript 组件编写
之前因项目需要也编写过一些简单的JS组件,大多是基于JQuery库的,一直也没有过总结,导致再次写到的时候还去Google, 近日看到一个文章总结的挺好,拿过整理一下做个备忘. 此次同样是基于jque ...
- requirejs的配置
baseUrl : 所有模块的查找根路径. 当加载纯.js文件(依赖字串以/开头,或者以.js结尾,或者含有协议),不会使用baseUrl. 如未显式设置baseUrl,则默认值是加载require. ...
- dynamic和object浅谈
要想知道dynamic和object的关系必须先理解它们的含义 C# 4.0提供了一个dynamic 关键字.在MSDN里是这样描述:在通过 dynamic 类型实现的操作中,该类型的作用是绕过编译时 ...
- 火狐Firefox 浏览器 onblur() 并且alert()时文本被选中问题
说明:镜像是组成在线实验课程的基础环境,教师设计的实验绑定一个或多个镜像,就组成了一讲独立的在线实验课程. 镜像名称: 火狐Firefox 浏览器 onblur() 并且alert()时文本被 ...
- css 溢出文本显示省略号
这个标题其实已经是一个老生常谈的问题了.很多时候,比如网站最基本的文章列表,标题会很长,而显示列表的区域宽度却没有这么宽,这时候最正常的做法就是 让超出宽度的部分文字用省略号(…)来表示.通常做法是网 ...