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" >

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ0phdmVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >

版权声明:本文博客原创文章。博客,未经同意,不得转载。

时间: 2024-11-01 22:39:58

Struts2 + uploadify 多文件上传完整的例子!的相关文章

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"></sc

struts2+extjs文件上传完整实现(解决了上传中的各种问题)

首先需要引入上传控件 <script type="text/javascript" src="<%=basePath%>/js/ext/examples/ux/fileuploadfield/FileUploadField.js" charset="utf-8"></script> 弹出上传框对应extjs代码 var uploadForm=new Ext.FormPanel({ id:'uploadForm'

struts2中实现文件上传功能

在web项目中,文件上传.头像上传这样的功能经常是要用到的,下面就以在struts2中实现文件上传功能为例子,简单地理一下文件上传功能的编码思路. 项目目录结构 项目源代码 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:x

struts2中的文件上传和下载

天下大事,必做于细.天下难事,必作于易. 曾经见过某些人,基础的知识还不扎实就去学习更难的事,这样必然在学习新的知识会很迷惑结果 再回来重新学习一下没有搞懂的知识,这必然会导致学习效率的下降!我写的这篇上传和下载都很基础. 十分适合初学者! jsp:页面 <!--在进行文件上传时,表单提交方式一定要是post的方式,因为文件上传时二进制文件可能会很大,还有就是enctype属性,这个属性一定要写成multipart/form-data, 不然就会以二进制文本上传到服务器端--> <for

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

不管是.net还是Java,我们最常接触到的就是文件的上传和下载功能,在Java里要实现这两个常用功能会有很多种解决方式,但是struts2的框架却能给我们一个比较简单的方式,下面就一起来看吧: 文件上传: 首先来看实现上传功能的表单,Index.jsp: <span style="font-family:FangSong_GB2312;font-size:18px;"><%@ page language="java" contentType=&q

[转]Struts2多个文件上传

转载至:http://blog.csdn.net/hanxiaoshuang123/article/details/7342091 Struts2多个文件上传多个文件上传分为List集合和数组,下面我们着重介绍一下list集合的上传.都大同小异.一 介绍1. 在struts2文件上传的时候要先导入struts2的几个包,在struts2.3.1.2中,导入的包如图所视: 从图上可以看出其中文件上传所需要的是包为commons-fileupload-1.2.2.jar和commons-io-2.0

uploadify多文件上传插件

这个插件是兼容IE8及以上版本的,实现了基本功能,底部有下载连接 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head> <title>uploadify多文件上传插件使用</title> <meta http-equ

ajaxFileUpload+struts2实现多文件上传(动态添加文件上传框)

上篇文章http://blog.csdn.net/itmyhome1990/article/details/36396291介绍了ajaxfileupload实现多文件上传, 但只是固定的文件个数,如果需求不确定是多少文件 则我们就需要动态的添加文件上传框,以实现灵活性. 基于上篇基本框架是不变的,主要修改以下几个方面 1.jQuery实现动态添加删除文件上传框 2.获取文件上传框的ID 3.ajaxfileupload.js里将ID数组转换为需要的Object数组 依次解决上面问题 一.实现动

PHP实现视频文件上传完整实例

PHP实现视频文件上传完整实例 转载 这篇文章主要介绍了PHP实现视频文件上传的技巧,包含了PHP配置信息的设计及大文件的处理,需要的朋友可以参考下 本文以一个完整实例的形式实现了视频文件上传的功能.虽然是比较基础的应用,仍有一定的参考价值.分享给大家供大家参考之用.具体方法如下: 首先,对PHP来说视频也属于文件,我们利用这个道理,可以通过与上传普通文件类似的方式实现上传PHP视频文件.不同的是视频文件一般较大,上传时间长,而php配置文件也对上传文件的大小有限制.如果需要更好地用PHP实现文