本文实例为大家分享了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了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍struts2实现多文件上传,包括了struts2实现多文件上传的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了struts2实现多文件上传的具体代码,供大家参考,具体内容如下 首先搭建好struts2的开发环境,导入struts2需要的最少jar包 新建upload.jsp页面,注意一定要把表单的enctype设置成multipart/form-data 新建一个Up
本文向大家介绍uploadify java实现多文件上传和预览,包括了uploadify java实现多文件上传和预览的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java文件上传和预览实现代码,供大家参考,具体内容如下 1、下载uploadify插件 2、index.html 3、java文件 效果图: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程
本文向大家介绍JS+Struts2多文件上传实例详解,包括了JS+Struts2多文件上传实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了JS Struts2多文件上传的具体代码,供大家参考,具体内容如下 1、JSP页面: JS控制增加删除多个上传文件框,代码如下: 2、Action后台处理上传文件: FileUtil代码如下: 扩展: 1.可以实现带进度条的上传与下载; 2
本文向大家介绍Uploadify上传文件方法,包括了Uploadify上传文件方法的使用技巧和注意事项,需要的朋友参考一下 Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示。不过官方提供的实例时php版本的,本文将详细介绍Uploadify在Aspnet中的使用,您也可以点击下面的链接进行演示或下载。 先给大家展示下效果图: 修改: 报找不到uploadify-can
本文向大家介绍asp.net uploadify实现多附件上传功能,包括了asp.net uploadify实现多附件上传功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了asp.net uploadify多附件上传的方法,供大家参考,具体内容如下 1、说明 uploadify是一款优秀jQuery插件,主要功能是批量上传文件。大多数同学对多附件上传感到棘手,现将asp.net
主要内容:1. 动作类,2. 结果页面,3. struts.xml,4. 示例,参考在上章节Struts2 文件上传示例, 用户允许选择一个文件并上传到服务器。在本教程中,您将学习如何允许用户将多个文件上传到服务器。 这里创建一个Web工程:strut2uploadfiles,来演示在多个复选框如何设置的默认值,整个项目的结构如下图所示: 1. 动作类 在Action类,可以使用列表或数组以存储上传的文件。 FileUploadAction.java 2. 结果页面 使用<s:f