Struts2+uploadify多文件上传实例

 更新时间:2018年08月29日 11:00:16   作者:Jaaaaaaaava  
这篇文章主要为大家详细介绍了Struts2+uploadify多文件上传实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Struts2+uploadify多文件上传的具体代码,供大家参考,具体内容如下

首先我这里使用的是  Jquery  Uploadify3.2的版本

导入相关的CSS  JS  

<link rel="stylesheet" type="text/css" href="<%=basePath%>css/uploadify/uploadify.css" rel="external nofollow" >
<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);" rel="external nofollow" onclick="myUpload()">上传</a>
  <a href="javascript:$('#img_file').uploadify('cancel')" rel="external nofollow" >取消上传</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;
       }
      }, //
      //上传到服务器,服务器返回相应信息到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了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java掩码的几种使用例举

    Java掩码的几种使用例举

    今天小编就为大家分享一篇关于Java掩码的使用,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Java异常处理之java.lang.ClassCastException问题

    Java异常处理之java.lang.ClassCastException问题

    这篇文章主要介绍了Java异常处理之java.lang.ClassCastException问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • java线程间通讯的一些方法总结

    java线程间通讯的一些方法总结

    这篇文章主要介绍了java线程间通讯的一些方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • java 抽象类与接口的区别总结

    java 抽象类与接口的区别总结

    这篇文章主要介绍了java 抽象类与接口的区别总结的相关资料,需要的朋友可以参考下
    2017-02-02
  • Java实现下载文件的6种方式

    Java实现下载文件的6种方式

    本文主要介绍了Java实现下载文件的6种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Java中springboot搭建html的操作代码

    Java中springboot搭建html的操作代码

    这篇文章主要介绍了Java中springboot搭建html的相关操作,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • 分享几个Java工作中实用的代码优化技巧

    分享几个Java工作中实用的代码优化技巧

    这篇文章主要给大家分享几个Java工作中实用代码优化技巧,文章基于Java的相关资料展开对其优化技巧的分享,需要的小伙伴可以参考一下
    2022-04-04
  • Spring Boot Mybatis++ 2025详解

    Spring Boot Mybatis++ 2025详解

    文章介绍了三种基于注解SQL和查询接口的MyBatis使用方式,讨论了Entity和Example的区别,即Entity会更新所有字段,而Example仅更新非空字段,感兴趣的朋友一起看看吧
    2025-02-02
  • Java 从Set里面取出有序的记录详解及实例

    Java 从Set里面取出有序的记录详解及实例

    这篇文章主要介绍了Java 从Set里面取出有序的记录详解及实例的相关资料,需要的朋友可以参考下
    2017-06-06
  • Java使用JDBC实现Oracle用户认证的方法详解

    Java使用JDBC实现Oracle用户认证的方法详解

    这篇文章主要介绍了Java使用JDBC实现Oracle用户认证的方法,结合实例形式分析了java使用jdbc实现数据库连接、建表、添加用户、用户认证等操作流程与相关注意事项,需要的朋友可以参考下
    2017-08-08

最新评论