首先,我这里使用的是  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 多文件上传完整的例子!的更多相关文章

  1. Struts2 之 实现文件上传和下载

    Struts2  之 实现文件上传和下载 必须要引入的jar commons-fileupload-1.3.1.jar commons-io-2.2.jar 01.文件上传需要分别在struts.xm ...

  2. uploadify多文件上传实例--C#

    下载uploadify文件 http://www.uploadify.com/ HTML(视图) <html lang="zh-cn"> <head> &l ...

  3. [转]Struts2多个文件上传

    转载至:http://blog.csdn.net/hanxiaoshuang123/article/details/7342091 Struts2多个文件上传多个文件上传分为List集合和数组,下面我 ...

  4. 笨鸟先飞之Java(一)--使用struts2框架实现文件上传

    无论是.net还是Java,我们最常接触到的就是文件的上传和下载功能,在Java里要实现这两个经常使用功能会有非常多种解决方案,可是struts2的框架却能给我们一个比較简单的方式,以下就一起来看吧: ...

  5. Struts2 之 实现文件上传(多文件)和下载

    Struts2  之 实现文件上传和下载 必须要引入的jar commons-fileupload-1.3.1.jar commons-io-2.2.jar 01.文件上传需要分别在struts.xm ...

  6. struts2+extjs文件上传完整实现(攻克了上传中的各种问题)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/shanhuhau/article/details/28617999 首先须要引入上传控件 <s ...

  7. struts2 笔记02 文件上传、文件下载、类型转换器、国际化的支持

    Struts2的上传 1. Struts2默认采用了apache commons-fileupload  2. Struts2支持三种类型的上传组件 3. 需要引入commons-fileupload ...

  8. ajaxFileUpload+struts2实现多文件上传

    以前有介绍过ajaxFileUpload实现文件上传,但那是单文件的,这次介绍多文件上传. 单文件上传参考:http://blog.csdn.net/itmyhome1990/article/deta ...

  9. struts2 基础3 文件上传、拦截器

    文件上传: 1.将头设置为enctype=”multipart/form-data” <form action="${pageContext.request.contextPath } ...

随机推荐

  1. Oracle本地管理对照数据字典管理表空间

    Locally vs. Dictionary Managed Tablespaces 整理自:http://www.orafaq.com/node/3. When Oracleallocates sp ...

  2. uva 11722 - Joining with Friend(概率)

    题目连接:uva 11722 - Joining with Friend 题目大意:你和朋友乘火车,而且都会路过A市.给定两人可能到达A市的时段,火车会停w.问说两人能够见面的概率. 解题思路:y = ...

  3. docker 的安装

    官方站点上有各种环境下的 安装指南,这里主要介绍下Ubuntu和CentOS系列的安装. Ubuntu 系列安装 Docker 通过系统自带包安装 Ubuntu 14.04 版本号系统中已经自带了 D ...

  4. Android在如何建立一个WebServer

    今天老板交待任务最终完成了,感觉收获颇多,所以写一个关于它的记录,首先,看一下.老板的需求 需求: 希望移动端的用户标识(IMEI)和HTML页面的用户标识(Cookie)连接起来,当中HTML页面可 ...

  5. LeetCode: Unique Binary Search Trees [095]

    [题目] Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For ...

  6. 黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (高级)

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (高级) 企业库验证应用程序模块之配置文件模式: ...

  7. Windows Phone开发(15):资源

    原文:Windows Phone开发(15):资源 活字印刷术是我国"四大发明"之一,毕昇在发明活字印刷术之后,他很快发现一个问题,随着要印刷资料的不断增加,要用到的汉字数目越来越 ...

  8. git 仓库

    从 Git 删除文件 rm test.txt git rm test.txt 加入远程仓库 $ git remote origin $ git remote add pb git://github.c ...

  9. WCF扩展之实现ZeroMQ绑定和protocolBuffer消息编码(一)概要设计

      在我工作的项目中含有多种操作系统.多种设备.多种开发语言,因此需要使用跨平台的通信技术和自定义的消息编码.经过技术调研,ZeroMQ+ProtocolBuffer最终成为通信技术和编码方式.但是如 ...

  10. [Windwos Phone] 实作地图缩放 MapAnimationKind 属性效果

    原文:[Windwos Phone] 实作地图缩放 MapAnimationKind 属性效果 [前言] 使用经纬度来定位地图的位置,以及使用 MapAnimationKind 属性来设定地图缩放时的 ...