Struts2 + uploadify 多文件上传完整的例子!
首先,我这里使用的是 Jquery Uploadify3.2版本号
导入相关的CSS JS
<link rel="stylesheet" type="text/css" href="<%=basePath%>css/uploadify/uploadify.css">
<script src="<%=basePath%>js/jquery.min.js"></script>
<script src="<%=basePath%>js/uploadify/jquery.uploadify.min.js"></script>
接下来是 上传的 JSP 页面代码
- <form action="" method="post" >
- <input type="file" name="img_file" id="img_file">
- <div id="uploadfileQueue" ></div>
- <div id="imgs" ></div>
- <div id="dialog-message" ></div>
- </form>
- <p>
- <a href="javascript:void(0);" onclick="myUpload()">上传</a>
- <a href="javascript:$('#img_file').uploadify('cancel')">取消上传</a>
- </p>
这里是最关键的 JS 代码 有凝视
- $(function(){
- $("#img_file").uploadify({
- auto:false,//是否自己主动上传
- height: 30,
- buttonText:'选择图片',
- cancelImage:'<%=basePath%>img/uploadify/uploadify-cancel.png',
- swf : '<%=basePath %>js/uploadify/uploadify.swf',
- // expressInstall:'js/uploadify/expressInstall.swf',
- uploader : '<%=basePath%>json/fileUploadAction.action', //后台处理上传文件的action
- width : 120 ,
- 'multi': true, //设置为true将同意多文件上传
- 'filesSelected': '4',
- queueID:'uploadfileQueue',
- fileObjName:'img_file', //与后台Action中file属性一样
- /*
- formData:{ //附带值
- 'userid':'111',
- 'username':'tom',
- 'rnd':'111'
- },
- */
- fileTypeDesc:'上传文件支持的文件格式:jpg,jpge,gif,png',
- fileTypeExts:'*.jpg;*.jpge;*.gif;*.png',//*.jpg;*.jpge;*.gif;*.png
- queueSizeLimit : 4,//仅仅能一次上传4张图片
- // simUploadLimit:1,//一次能够上传1个文件
- fileSizeLimit:'2097152',//上传文件最大值 单位为字节 2M
- //返回一个错误。选择文件的时候触发
- onSelectError:function(file, errorCode, errorMsg){
- switch(errorCode) {
- case -100:
- alert("上传的文件数量已经超出系统限制的4个文件!
- ");
- break;
- case -110:
- alert("文件 ["+file.name+"] 大小超出系统限制的2M大小。");
- break;
- case -120:
- alert("文件 ["+file.name+"] 大小异常!
- ");
- break;
- case -130:
- alert("文件 ["+file.name+"] 类型不对!");
- break;
- }
- }, //
- //上传到server,server返回对应信息到data里
- onUploadSuccess:function(file, data, response){
- var objs = eval('('+data+')');
- var phtml = "<span><img style='width:150;height:150' src='/uploads/"+objs.filename+"'></span>";
- if($("#imgs span").length==0){
- $("#imgs").html(phtml);
- }else{
- $("#imgs span:last").after(phtml);
- }
- },
- onSelect : function(file) {
- //alert(file.name);
- },
- //removeCompleted:true,//上传的文件进度条是否消失
- requeueErrors:false,
- // removeTimeout:2,//进度条消失的时间。默觉得3
- progressData:"percentage",//显示上传的百分比
- onUploadError : function(file,errorCode,errorMsg,errorString,swfuploadifyQueue) { //这里是取消的时候发生
- // $("#dialog-message").html(errorString);
- }
- });
- });
- //上传文件
- function myUpload(){
- $("#img_file").uploadify('upload','*');
- }
java 上传的 Action 代码
- /**
- * 上传文件的Action
- * @author wzh
- *
- */
- @Controller
- @Scope("prototype")
- public class FileUploadAction extends BaseAction {
- private File img_file;
- private String img_fileContentType;//格式同上"fileName"+ContentType
- private String img_fileFileName;//格式同上"fileName"+FileName
- private String savePath;//文件上传后保存的路径
- private Map<String, Object> dataMap = new HashMap<String, Object>();
- @Override
- /***
- * 上传文件
- */
- public String execute() throws Exception{
- System.out.println("savePath"+getSavePath());
- File dir=new File(getSavePath());
- System.out.println(dir.getAbsolutePath());
- //推断是否存在路径
- if(!dir.exists()){
- dir.mkdirs();
- }
- //当前上传的文件
- File file=getImg_file();
- //获得后缀
- String ext =FileUtil.getExtensionName(getImg_fileFileName());
- String newFileName = UUID.randomUUID()+ext;
- FileOutputStream fos=new FileOutputStream(getSavePath()+"//"+newFileName);
- FileInputStream fis=new FileInputStream(getImg_file());
- byte []buffers=new byte[1024];
- int len=0;
- while((len=fis.read(buffers))!=-1){
- fos.write(buffers,0,len);
- }
- fos.close();
- fis.close();
- // String uploadFileName = getImg_fileFileName();
- dataMap.put("filename",newFileName);
- return SUCCESS;
- }
- <!-- 文件上传相关的 -->
- <action name="fileUploadAction" class="fileUploadAction">
- <param name="savePath">E:/Tomcat6.0/webapps/uploads</param>
- <result type="json">
- <param name="root">dataMap</param>
- </result>
- </action>
配置完以上的 基本就OK了 有什么不懂的能够评论问问。我会回复
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ0phdmVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ0phdmVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
版权声明:本文博客原创文章。博客,未经同意,不得转载。
Struts2 + uploadify 多文件上传完整的例子!的更多相关文章
- Struts2 之 实现文件上传和下载
Struts2 之 实现文件上传和下载 必须要引入的jar commons-fileupload-1.3.1.jar commons-io-2.2.jar 01.文件上传需要分别在struts.xm ...
- uploadify多文件上传实例--C#
下载uploadify文件 http://www.uploadify.com/ HTML(视图) <html lang="zh-cn"> <head> &l ...
- [转]Struts2多个文件上传
转载至:http://blog.csdn.net/hanxiaoshuang123/article/details/7342091 Struts2多个文件上传多个文件上传分为List集合和数组,下面我 ...
- 笨鸟先飞之Java(一)--使用struts2框架实现文件上传
无论是.net还是Java,我们最常接触到的就是文件的上传和下载功能,在Java里要实现这两个经常使用功能会有非常多种解决方案,可是struts2的框架却能给我们一个比較简单的方式,以下就一起来看吧: ...
- Struts2 之 实现文件上传(多文件)和下载
Struts2 之 实现文件上传和下载 必须要引入的jar commons-fileupload-1.3.1.jar commons-io-2.2.jar 01.文件上传需要分别在struts.xm ...
- struts2+extjs文件上传完整实现(攻克了上传中的各种问题)
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/shanhuhau/article/details/28617999 首先须要引入上传控件 <s ...
- struts2 笔记02 文件上传、文件下载、类型转换器、国际化的支持
Struts2的上传 1. Struts2默认采用了apache commons-fileupload 2. Struts2支持三种类型的上传组件 3. 需要引入commons-fileupload ...
- ajaxFileUpload+struts2实现多文件上传
以前有介绍过ajaxFileUpload实现文件上传,但那是单文件的,这次介绍多文件上传. 单文件上传参考:http://blog.csdn.net/itmyhome1990/article/deta ...
- struts2 基础3 文件上传、拦截器
文件上传: 1.将头设置为enctype=”multipart/form-data” <form action="${pageContext.request.contextPath } ...
随机推荐
- 有关信息ACM/ICPC竞争环境GCC/G++叠插件研究记录的扩展
0.起因 有时.DFS总是比BFS受人喜爱--毕竟DFS简单粗暴,更,而有些东西BFS不要启动,DFS它似乎是一个可行的选择-- 但是有一个问题,DFS默认直接写入到系统堆栈.系统堆栈和足够浅,此时O ...
- 详解CMS垃圾回收机制
原创不易,未经允许,不得转载~~~ 什么是CMS? Concurrent Mark Sweep. 看名字就知道,CMS是一款并发.使用标记-清除算法的gc. CMS是针对老年代进行回收的GC. CMS ...
- java split小结(转)
2016.03.27下午参加华为机试,简单扫了一眼几个题的标题,选择了一道字符串问题,其实该题非常非常的简单,可以说是简单的不能再简单了,而且有很多种解法,上机时我选择了直接借用java提供的一些函数 ...
- springMVC整合JAXB
一.背景 由于项目中要用到将Java对象转为xml返回给调用者.选择使用JAXB,由于它是JDK自带的.不须要引入其它Jar包 它提供了高速而简便的方法将xml和对象互转的方法. 二.重要Class和 ...
- coco2dx c++ HTTP实现
coco2dx c++ HTTP实现 达到的结果如下面的 iPhone截图 android 日志截图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdnBp ...
- Openfire开发配置,Openfire源码配置,OpenFire二次开发配置
1.下载源码:http://www.igniterealtime.org/downloads/source.jsp 2.把源码解压出的openfire_src目录放至eclipse workplace ...
- WPF 数字小键盘Themes
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...
- 跨平台移动框架iMAG开发入门
iMAG是一个非常简洁高效的移动跨平台开发框架,开发一次能够同一时候兼容Android和iOS平台,有点儿Web开发基础就能非常快上手.当前移动端跨平台开发的框架有非常多,但用iMAG另一个优点,就是 ...
- SQLite Code配置DbConfiguration
[DbConfigurationType(typeof(SQLiteConfiguration))] public partial class rsapiEntities : DbContext { ...
- Codeforces554D:Kyoya and Permutation
Let's define the permutation of length n as an array p = [p1, p2, ..., pn] consisting of n distinct ...