在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" alt="">

前台页面: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)框架大概有一个半月了,总体上能够体会到框架解决某一个问题,提供了非常好的解决方式,简化了开发人员写代码的粒度,我们这时要停下脚步,逐步的思考框架的原理?

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

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

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

  1. SSH深度历险(九) Struts2+DWZ+Uploadify实现多文件(文件和图片等等)上传

    在gxpt_uas系统中,要实现文件(文件和图片等等,可以灵活配置)的批量上传至mongodb,在学习这个过程中,学习了mongodb,并实现了批量上传的功能,实现思路:在DWZ的基础上参考官方的实例 ...

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

    网上看了很多关于文件上传的帖子,众口不一,感觉有点乱,最近正好公司的项目里用到JQuery的uploadify控件做文件上传,所以整理下头绪,搞篇文档出来,供亲们分享. Uploadify控件的主要优 ...

  3. SSH深度历险记(八) 剖析SSH核心原则+Spring依赖注入的三种方式

           于java发育.一类程序猿必须依靠类的其他方法,它是通常new依赖类的方法,然后调用类的实例,这样的发展问题new良好的班统一管理的例子.spring提出了依赖注入的思想,即依赖类不由程 ...

  4. SSH深度历险记(两) Jboss+EJB一审

    学习感悟:每次学习新知识.通过初审会从小事做起,获得成就感.经典Hello Workd我们成功的例子奠定了门哈,呢.非常好的理解了.Ejb的核心. 今天主要以这个小实例,来学习EJB的分布式,我们能够 ...

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

    1. 载入中struts2的dtd文件.使struts.xml网络无法验证,和eclipse有技巧 在src在创建struts.xml: <? xmlversion="1.0" ...

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

    —>最近由于项目需要使用到一个上传插件,在网上发现uploadify挺不错,所以决定使用它,但是官网文档和例子是php的,而项目是SSI框架的,所以自己对uploadify在struts2中的使 ...

  7. 在Struts2中使用Uploadify组件上传文件

    Uploadify是一个基于Jquery的文件上传组件,官网http://www.uploadify.com/可以在官网获得该组件,运行演示示例,下载帮助文档.     作为Web前端的增强技术,Jq ...

  8. Struts2 + uploadify 多文件上传完整的例子!

    首先,我这里使用的是  Jquery  Uploadify3.2版本号  导入相关的CSS  JS    <link rel="stylesheet" type=" ...

  9. 菜鸟学SSH(五)——Struts2上传文件

    上传文件在一个系统当中是一个很常用的功能,也是一个比较重要的功能.今天我们就一起来学习一下Struts2如何上传文件. 今天讲的上传文件的方式有三种: 1,以字节为单位传输文件: 2,Struts2封 ...

随机推荐

  1. jquery如何实现动态增加选择框

    jquery如何实现动态增加选择框 一.总结 一句话总结:用jquery的clone(true)方法. 1.如何在页面中复制amazeui加了特效的标签? amazeui中的控件带js方法,不知道那部 ...

  2. mybatis逆向工程随笔

    mybatis框架简介和简单原理: mybatis本来是apache的一个开源的项目,后来迁移到了google,并且改名为mybatis. mybatis框架优点: 1.mybatis是最简单的持久化 ...

  3. PWA之Web 应用清单

    原文 简书原文:https://www.jianshu.com/p/5c96242188e8 大纲 1.什么是Web 应用清单 2.“清单文件”:Web App Manifest 规范的应用 3.we ...

  4. 网易前端微专业,JavaScript程序设计基础篇:数组

    不论什么一种语言数组都是比較重要的,其作为一种基础对象应用非常多,如Java你肯定少不了集合(List,Map)这些.因此本篇主要记录JS的数组使用和经常用法.要点例如以下: 1,数组创建 两种方式: ...

  5. Android 获取签名证书的具体信息(Eclipse和Android studio通用)

    今天要用到签名证书的MD5,可是这个仅仅有在第一次生成的时候我看到了,这可怎么办呢,幸亏我们有google,我们执行以下的命令就OK了. keytool -list -v -keystore 签名证书 ...

  6. [SQL]远程使用PostgreSQL Studio可视化查看PostgreSQL数据库

    1.下载 前往官网地址下载最新的PostgreSQL Studio,我下载的是 pgstudio_1.2-bin .zip,由于我的电脑里面没有tomcat. 假设电脑里有配置好tomcat,能够下载 ...

  7. net的微服务架构

    net的微服务架构 眼下,做互联网应用,最火的架构是微服务,最热的研发管理就是DevOps, 没有之一.微服务.DevOps已经被大量应用,它们已经像传说中的那样,可以无所不能.特来电云平台,通过近两 ...

  8. IT增值服务-客户案例(三):合肥薪火科技,Java和P2P网络借贷系统开发指导

    客户整体情况: 合肥薪火科技,是安徽合肥一家主营微信开发和运营的中小企业,http://weimarket.cn/. 这家公司筹备.创立.曲折创业的经历,我一直有关注.因为2个老板,都是我的同学校友, ...

  9. 【u032】均衡发展

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 神牛小R在许多方面都有着很强的能力,具体的说,他总共有m种能力,并将这些能力编号为1到m.他的能力是一 ...

  10. expdp之后scp的惊险时刻

    今天在导出数据的时候.忽然就想起了上次导数据的惊险时刻. 当时导出数据,有40g.分盘./backup有几T的空间,非常easy.果断搞! 是daochu.dmp,导出后传到还有一个主机,还有一个主机 ...