首先,我这里使用的是  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 页面代码

  1. <form action="" method="post" >
  2. <input type="file" name="img_file" id="img_file">
  3. <div id="uploadfileQueue" ></div>
  4. <div id="imgs" ></div>
  5. <div id="dialog-message" ></div>
  6. </form>
  7.  
  8. <p>
  9. <a href="javascript:void(0);" onclick="myUpload()">上传</a>
  10. <a href="javascript:$('#img_file').uploadify('cancel')">取消上传</a>
  11. </p>

这里是最关键的 JS  代码  有凝视

  1. $(function(){
  2. $("#img_file").uploadify({
  3. auto:false,//是否自己主动上传
  4. height: 30,
  5. buttonText:'选择图片',
  6. cancelImage:'<%=basePath%>img/uploadify/uploadify-cancel.png',
  7. swf : '<%=basePath %>js/uploadify/uploadify.swf',
  8. // expressInstall:'js/uploadify/expressInstall.swf',
  9. uploader : '<%=basePath%>json/fileUploadAction.action', //后台处理上传文件的action
  10. width : 120 ,
  11. 'multi': true, //设置为true将同意多文件上传
  12. 'filesSelected': '4',
  13. queueID:'uploadfileQueue',
  14. fileObjName:'img_file', //与后台Action中file属性一样
  15. /*
  16. formData:{ //附带值
  17. 'userid':'111',
  18. 'username':'tom',
  19. 'rnd':'111'
  20. },
  21. */
  22. fileTypeDesc:'上传文件支持的文件格式:jpg,jpge,gif,png',
  23. fileTypeExts:'*.jpg;*.jpge;*.gif;*.png',//*.jpg;*.jpge;*.gif;*.png
  24. queueSizeLimit : 4,//仅仅能一次上传4张图片
  25. // simUploadLimit:1,//一次能够上传1个文件
  26. fileSizeLimit:'2097152',//上传文件最大值 单位为字节 2M
  27. //返回一个错误。选择文件的时候触发
  28. onSelectError:function(file, errorCode, errorMsg){
  29.  
  30. switch(errorCode) {
  31. case -100:
  32. alert("上传的文件数量已经超出系统限制的4个文件!
  33.  
  34. ");
  35. break;
  36. case -110:
  37. alert("文件 ["+file.name+"] 大小超出系统限制的2M大小。");
  38. break;
  39. case -120:
  40. alert("文件 ["+file.name+"] 大小异常!
  41.  
  42. ");
  43. break;
  44. case -130:
  45. alert("文件 ["+file.name+"] 类型不对!");
  46. break;
  47. }
  48. }, //
  49. //上传到server,server返回对应信息到data里
  50. onUploadSuccess:function(file, data, response){
  51. var objs = eval('('+data+')');
  52. var phtml = "<span><img style='width:150;height:150' src='/uploads/"+objs.filename+"'></span>";
  53. if($("#imgs span").length==0){
  54. $("#imgs").html(phtml);
  55. }else{
  56. $("#imgs span:last").after(phtml);
  57. }
  58. },
  59. onSelect : function(file) {
  60. //alert(file.name);
  61. },
  62. //removeCompleted:true,//上传的文件进度条是否消失
  63. requeueErrors:false,
  64. // removeTimeout:2,//进度条消失的时间。默觉得3
  65. progressData:"percentage",//显示上传的百分比
  66. onUploadError : function(file,errorCode,errorMsg,errorString,swfuploadifyQueue) { //这里是取消的时候发生
  67. // $("#dialog-message").html(errorString);
  68. }
  69. });
  70.  
  71. });
  72.  
  73. //上传文件
  74. function myUpload(){
  75. $("#img_file").uploadify('upload','*');
  76. }

java  上传的 Action 代码

  1. /**
  2. * 上传文件的Action
  3. * @author wzh
  4. *
  5. */
  6. @Controller
  7. @Scope("prototype")
  8. public class FileUploadAction extends BaseAction {
  9. private File img_file;
  10. private String img_fileContentType;//格式同上"fileName"+ContentType
  11. private String img_fileFileName;//格式同上"fileName"+FileName
  12. private String savePath;//文件上传后保存的路径
  13. private Map<String, Object> dataMap = new HashMap<String, Object>();
  14.  
  15. @Override
  16. /***
  17. * 上传文件
  18. */
  19. public String execute() throws Exception{
  20.  
  21. System.out.println("savePath"+getSavePath());
  22.  
  23. File dir=new File(getSavePath());
  24. System.out.println(dir.getAbsolutePath());
  25.  
  26. //推断是否存在路径
  27. if(!dir.exists()){
  28. dir.mkdirs();
  29. }
  30.  
  31. //当前上传的文件
  32. File file=getImg_file();
  33. //获得后缀
  34. String ext =FileUtil.getExtensionName(getImg_fileFileName());
  35. String newFileName = UUID.randomUUID()+ext;
  36. FileOutputStream fos=new FileOutputStream(getSavePath()+"//"+newFileName);
  37. FileInputStream fis=new FileInputStream(getImg_file());
  38. byte []buffers=new byte[1024];
  39. int len=0;
  40. while((len=fis.read(buffers))!=-1){
  41. fos.write(buffers,0,len);
  42. }
  43.  
  44. fos.close();
  45. fis.close();
  46.  
  47. // String uploadFileName = getImg_fileFileName();
  48. dataMap.put("filename",newFileName);
  49.  
  50. return SUCCESS;
  51. }

  1. <!-- 文件上传相关的 -->
  2. <action name="fileUploadAction" class="fileUploadAction">
  3. <param name="savePath">E:/Tomcat6.0/webapps/uploads</param>
  4. <result type="json">
  5. <param name="root">dataMap</param>
  6. </result>
  7. </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. 有关信息ACM/ICPC竞争环境GCC/G++叠插件研究记录的扩展

    0.起因 有时.DFS总是比BFS受人喜爱--毕竟DFS简单粗暴,更,而有些东西BFS不要启动,DFS它似乎是一个可行的选择-- 但是有一个问题,DFS默认直接写入到系统堆栈.系统堆栈和足够浅,此时O ...

  2. 详解CMS垃圾回收机制

    原创不易,未经允许,不得转载~~~ 什么是CMS? Concurrent Mark Sweep. 看名字就知道,CMS是一款并发.使用标记-清除算法的gc. CMS是针对老年代进行回收的GC. CMS ...

  3. java split小结(转)

    2016.03.27下午参加华为机试,简单扫了一眼几个题的标题,选择了一道字符串问题,其实该题非常非常的简单,可以说是简单的不能再简单了,而且有很多种解法,上机时我选择了直接借用java提供的一些函数 ...

  4. springMVC整合JAXB

    一.背景 由于项目中要用到将Java对象转为xml返回给调用者.选择使用JAXB,由于它是JDK自带的.不须要引入其它Jar包 它提供了高速而简便的方法将xml和对象互转的方法. 二.重要Class和 ...

  5. coco2dx c++ HTTP实现

    coco2dx c++ HTTP实现 达到的结果如下面的 iPhone截图 android 日志截图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdnBp ...

  6. Openfire开发配置,Openfire源码配置,OpenFire二次开发配置

    1.下载源码:http://www.igniterealtime.org/downloads/source.jsp 2.把源码解压出的openfire_src目录放至eclipse workplace ...

  7. WPF 数字小键盘Themes

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...

  8. 跨平台移动框架iMAG开发入门

    iMAG是一个非常简洁高效的移动跨平台开发框架,开发一次能够同一时候兼容Android和iOS平台,有点儿Web开发基础就能非常快上手.当前移动端跨平台开发的框架有非常多,但用iMAG另一个优点,就是 ...

  9. SQLite Code配置DbConfiguration

    [DbConfigurationType(typeof(SQLiteConfiguration))] public partial class rsapiEntities : DbContext { ...

  10. Codeforces554D:Kyoya and Permutation

    Let's define the permutation of length n as an array p = [p1, p2, ..., pn] consisting of n distinct ...