SSH深度历险记(九) Struts2+DWZ+Uploadify多文件(文件和图片等。)上传

在gxpt_uas系统,为了实现文件(文件和图片等。,灵活配置)批量上传到mongodb,在学习的过程中,知道mongodb,功能,实现思路:在DWZ的基础上參考官方的实例结合现有的GXPT来实现,期间看了非常多的博客,对于这些框架来说,基本的学习还是应该以文档指导为主,多看官方的手冊(即便来说文档非常少),多查资料。总的来看。能够说这是DWZ集成过来的插件,主要是js来实现,逐步的体会到了JS厉害,我们对于这些前端框架的学习都是一个道理的(easyui、DWZ、ExtJs等等),仅仅要我们有个学习的思路,一切看似新的内容。我们都能够当成旧的内容学习。知识不同架构而已,学习的思路不变,入门还是非常快的,框架确实封装了非常多内容,逐步的深入学习吧。切入正题:

引入的文件

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

前台页面:uploadDuo.jsp

<span style="font-size:18px;">uploaderOption="{

			swf:'${contextPath}/styles/dwz/uploadify/scripts/uploadify.swf',<!-- 载入上传的进度条的文件 -->

			uploader:'${contextPath }/upload/uploadPicAction.action',<!-- 文件提交到后台的action -->

			formData:{PHPSESSID:'xxx', ajax:1},<!-- 对象和额外的数据发送到server端上传脚本与每个文件上传 -->
			  fileSizeLimit:'200KB',<!-- 限制文件大小 -->
			fileTypeDesc:'*.jpg;*.jpeg;*.gif;*.png;',<!-- 限制文件格式 -->
			fileTypeExts:'*.jpg;*.jpeg;*.gif;*.png;',<!-- 限制文件类型 -->
			fileObjName:'picUp',<!-- 为action中文件的名字一样,这样才干注入进来 -->

			queueID:'fileQueue',	<!-- ile对象的名称用在server端脚本 -->

			buttonImage:'${contextPath}/styles/dwz/uploadify/img/add.jpg',<!-- 按钮图片的载入地址 -->

			buttonClass:'my-uploadify-button',	<!-- 按钮的类型,DWz封装好的类型,运行对应的类型就可以 -->
			width:102,

			auto:false<!-- 是否自己主动上传文件加入到队列中,false不能自己主动上传。进入队列,true自己主动上传 -->
		}"</span>
<span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;"><!-- 照片集存取位置 -->
	<div id="fileQueue" class="fileQueue"></div>

	<input type="image" src="${contextPath}/styles/dwz/uploadify/img/upload.jpg"  onclick="$('#testFileInput2').uploadify('upload', '*');"/>
	<input type="image" src="${contextPath}/styles/dwz/uploadify/img/cancel.jpg" onclick="$('#testFileInput2').uploadify('cancel', '*');"/>

	<div class="divider"></div>
	</span></span></span>

处理:UploadPicAction

<span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;">private File picUp;
	//文件名称字(能够上传文件包括图片等等)
	private String picUpFileName;
	//文件的类型(struts2框架自带属性)
	private String picUpContentType;
//获取文件全信息
	public File getPicUp() {
		return picUp;
	}
//注入文件全信息你
	public void setPicUp(File picUp) {
		this.picUp = picUp;
	}

//获取文件名称称
	public String getPicUpFileName() {
		return picUpFileName;
	}

//注入文件名称称
	public void setPicUpFileName(String picUpFileName) {
		this.picUpFileName = picUpFileName;
	}
	//获取文件类型
	public String getPicUpContentType() {
		return picUpContentType;
	}
	//注入文件类型
	public void setPicUpContentType(String picUpContentType) {
		this.picUpContentType = picUpContentType;
	}

/**
	 * 上传图片
	 * @MethodName	: uploadPic
	 * @Description	: 文件批量上传方法
	 */
	public void uploadPic(){
        try {
            // 构造图片属性。key为属性名,value为属性值,属性随意。
            LinkedHashMap<String, Object> map = new LinkedHashMap<String, Object>();
           System.out.println(picUpFileName);
            // 存入filename属性,值为uploadFileName
            map.put("filename", picUpFileName);
            map.put("contentType", picUpContentType);
            //实例化MongoEao的对象
            MongoUtil mongoEao = new MongoUtil();
            //调用后台加入的方法,写入到mongodb数据库中
            mongoEao.uploadFile(picUp, picUpFileName+"_new", "gxpt_uas","uasStuPic", map);

            //在提交form时设置了enctype="multipart/form-data",因此,从request中拿到的ContentType已经变了格式,
            //为Content-Type:multipart/form-data; boundary=-------7de6d232f022a,因此在response中又一次设置ContentType
            System.out.println(request.getContentType());
            response.setContentType("text/html;charset=UTF-8");
            outMsg(AjaxObject.newOk( CommonConstant.OPETATE_SUCCESS).setCallbackType("").toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
	}/**
	 * 上传图片
	 * @MethodName	: uploadPic
	 * @Description	: 文件批量上传方法
	 */
	public void uploadPic(){
        try {
            // 构造图片属性,key为属性名。value为属性值,属性随意。
            LinkedHashMap<String, Object> map = new LinkedHashMap<String, Object>();
           System.out.println(picUpFileName);
            // 存入filename属性。值为uploadFileName
            map.put("filename", picUpFileName);
            map.put("contentType", picUpContentType);
            //实例化MongoEao的对象
            MongoUtil mongoEao = new MongoUtil();
            //调用后台加入的方法,写入到mongodb数据库中
            mongoEao.uploadFile(picUp, picUpFileName+"_new", "gxpt_uas","uasStuPic", map);

            //在提交form时设置了enctype="multipart/form-data",因此。从request中拿到的ContentType已经变了格式,
            //为Content-Type:multipart/form-data; boundary=-------7de6d232f022a,因此在response中又一次设置ContentType
            System.out.println(request.getContentType());
            response.setContentType("text/html;charset=UTF-8");
            outMsg(AjaxObject.newOk( CommonConstant.OPETATE_SUCCESS).setCallbackType("").toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
	}</span></span></span>

struts-studentPic.xml:

<span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC  "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>

	<constant name="struts.multipart.maxSize" value="20971520"/>
	<!-- 头像上传管理 -->

	<package name="uploadMgr" namespace="/upload" extends="default">

		<!-- 上传图片begin  -->

		<!--index页链接,跳转到上传页面  -->
		<action name="showPicMgrAction" class="uploadPicAction" method="showPicMgr">
			<result name="picMgr">/page/uploadify/uploadPic.jsp</result>
		</action>
		<!--index批量页链接。跳转到上传页面  -->
		<action name="showPicMgrPiLiangAction" class="uploadPicAction" method="showPicMgr">
			<result name="picMgr">/page/uploadify/uploadDuo.jsp</result>
		</action>
		<!--index批量页链接。跳转到上传页面  -->
		<action name="showPicMgrPiLiangOldAction" class="uploadPicAction" method="showPicMgr">
			<result name="picMgr">/page/uploadify/uploadOldDuo.jsp</result>
		</action>
		<!--上传图片  -->
		<action name="uploadPicAction" class="uploadPicAction" method="uploadPic">
		</action>
		<!--上传图片  -->
		<action name="uploadPicOldAction" class="uploadPicAction" method="uploadPicOld">
		</action>
		<!--查询指定图片,返回图片  -->
		<action name="getPicByIdAction" class="uploadPicAction" method="getPicById">
		</action>

		<!--查询全部图片 -->
		<action name="showAllPicAction" class="uploadPicAction" method="showAllPic">
			<result name="picList">/page/uploadify/fileList.jsp</result>
		</action>

		<!--查询指定图片,返回jsp页面  -->
		<action name="showPicByIdAction" class="uploadPicAction" method="showPicById">
			<result name="picList">/page/uploadify/fileList.jsp</result>
		</action>

		<!--删除指定图片  -->
		<action name="deletePicByIdAction" class="uploadPicAction" method="deletePicById">
		</action>

		<!-- 批量删除图片 -->
		<action name="deletePicByIdsAction" class="uploadPicAction" method="deletePicByIds">
		</action>
		<!--上传图片end   -->

	</package>

</struts></span>

spring-studentPic.xml,配置,控制反射注入

<span style="font-size:18px;"><!--上传图片  -->
    <bean id="uploadPicAction" class="web.uas.UploadPic.Action.UploadPicAction" scope="prototype" >

   </bean>
   </span>

效果图

文件提交成功

总结

这种效果来说,还是不错的,非常多内容它给封装到了框架里面,对于多文件上传,每个文件会调用后台的action方法,这个也是其和Struts2的完美组合吧,细心+文档=实现,这部分内容还是须要我们多多的实战,对于框架而言要多用学习到的很多其它,收获更大.

接触(SSH+Web)框架大概有一个半月了,总体上能够体会到框架解决某一个问题,提供了非常好的解决方式,简化了开发人员写代码的粒度,我们这时要停下脚步,逐步的思考框架的原理?

由来?思想?等等这才是我们真正该提高的部分钟.当然,先用一个非常重要的第一步起步.

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

时间: 2024-07-30 18:03:30

SSH深度历险记(九) Struts2+DWZ+Uploadify多文件(文件和图片等。)上传的相关文章

Springmvc+uploadify实现文件带进度条批量上传

网上看了很多关于文件上传的帖子,众口不一,感觉有点乱,最近正好公司的项目里用到JQuery的uploadify控件做文件上传,所以整理下头绪,搞篇文档出来,供亲们分享. Uploadify控件的主要优势是可以实现批量文件上传,并且提供了onSelect(选中文件).onUploadSuccess(上传成功回调函数)等多个事件监听函数,可以操控上传的整个流程. 对uploadify有个简单的了解后,废话不多说,开始吧... (由于这次项目中用到的是ssm框架,所以就以springmvc的后台处理为

JavaEE SSH集成框架(两) struts2 本地加载dtd文件,action组态

1. 载入中struts2的dtd文件.使struts.xml网络无法验证,和eclipse有技巧 在src在创建struts.xml: <? xmlversion="1.0"encoding="UTF-8"? > <!DOCTYPE strutsPUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts

JavaEE SSH框架整合(二) struts2 加载本地dtd文件,action配置

1. 加载struts2的dtd文件,使struts.xml不用联网就能验证,并在eclipse中有提示 在src下创建struts.xml: <?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPE strutsPUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://strut

文件上传插件Uploadify在Struts2中的应用,完整详细实例

->最近由于项目需要使用到一个上传插件,在网上发现uploadify挺不错,所以决定使用它,但是官网文档和例子是php的,而项目是SSI框架的,所以自己对uploadify在struts2中的使用进行了一番研究,最终实现了.发现网上关于这方面的资料很少,而且有的一两篇例子还不大全,网友提问质疑很多,所以,下面我特将我的代码公布: --------------------------------------------------------------------- 步骤一: 到官网上下载upl

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

uploadify struts2实现图片上传

uploadify是来自国外的一款优秀的jQuery上传插件,主要功能是批量上传文件,带进度显示. 包括两个版本,一个是Flash的 一个是HTML5的.下面介绍Flash版本如何使用 1.下载 Uploadify Zip 2.解压缩包并上传下列文件到您的网站上的一个文件夹: jquery.uploadify.min.js uploadify.css uploadify-cancel.png uploadify.swf 3.在您使用uploadify页面也不要忘了引入jQuery库 4.在页面引

【SSH网上商城项目实战13】Struts2实现文件上传功能

上一节我们做完了添加和更新商品的功能,这两个部分里有涉及到商品图片的上传,并没有详细解说.为此,这篇文章详细介绍一下Struts2实现文件上传的功能. 1. 封装文件信息 我们首先得有一个Model来封装文件的信息,这个Model里需要有三个属性:文件.文件类型和文件名.针对我们要传的图片,我们新建一个Model如下: public class FileImage { private File file; private String contentType; private String fi

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

Uploadify/uploadifive上传(中文文档)

Uploadify是一款基于JQuery的优秀的文件/图片上传的插件,有基于Flash和HTML5两种版本. Uploadify/uploadifive主要特点有: 1. 多文件上传 2. 个性化设置 3. 上传进度条显示 4. 拖拽上传(HTML5版本) 官网:http://www.uploadify.com 部署 在部署一个Uploadify实例前,请确保满足最低要求: 1.jQuery 1.4.x 或更高版本 2.Flash Player 9.0.24 或更高版本 3.支持PHP, ASP