EasyUI 单个/多个文件上传 SSM+EasyUI

关于文件上传和下载网上有很多相关教程,但针对入门的新人来说大部分都不够详细,而且由于一直换工作的原因(主要是因为自己的懒惰)把这篇整理拖延了很久,终于在今天打算将它完成了……(此处应有鸡蛋)

首先说要要完成的事情:

基于EasyUi+SSM框架完成文件上传,主要实用了easyui-filebox上传按钮;

准备工具:
环境:
  Eclipse 4.3
  jdk1.7.0_72
  apache-maven-3.0.4
  apache-tomcat-7.0.53
  spring-mvc-4.0
  spring-beans-4.0
  mybatis-3.2.8
  oracle 11.2.0.3.0

jar包:
  commons-io-2.4
  commons-fileupload-1.3

基本步骤:

  按照数据流向来阐述:

    >>> 页面提供文件上传控件;
    >>> contorller端接收页面传入的文件流,在这个步骤可以写入数据库或者放到指定目录;
    >>> 将上传的返回结果写回页面;

代码部分:

#jsp.js.jquery

 1 function uplodad(
 2     $(‘#fromNameId‘).form({
 3                 url:‘controllerurl‘,
 4                 onSubmit: function(){
 5                     //uploda before something
 6                 },
 7                 success:function(data){
 8                     //upload after something
 9                 },error:function(date){
10                     $.messager.alert(data.errormsg);
11                 }
12             });
13             $(‘#fromNameId‘).submit();
14 );

#jsp.html

1 <form id="rundApplyFrom" method="post" enctype="multipart/form-data">
2     <tr id="trIdCard">
3         <td>msg:</td>
4         <td><input class="easyui-filebox" id="uploadId" name="sourceFile" style="width:200px"></td>
5     </tr>
6 </from>
7
8 <!-- 这里的name属性需要和controller方法中用于接收上传文件Bean中的byte[]字段名字相同 -->

这里使用了EasyUi自带的filbox控件,在网上找了很多文件上传的资料都说要实用第三方插件什么的,但对于还是新人的我来说看着都一个头俩个个大;

于是看了一下相关资料和文档发现了这个东西;

使用步骤很简单:

  1.在html/jsp页面做如上配置,一个用于上传文件的选择框;

  2.通过ajax方式,使用jquery的标签选择器将form区域的id作为提交标记发起ajax访问controller中的upload方法(js部分代码);

在controller中的upload方法形参可以接收一个pojo,内部需要有一个MultipartFile属性命名和form域中对应的name相同,这个例子中我使用的是sourceFile(见上);

通过文章最开始提到的jar包自带的功能和SpringMVC的配置,可以将这里页面用户选择的文件自动存入pojo中对应的字段中(即sourceFile);

# springMVC.xml 配置

  <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="UTF-8"/>
  </bean> 

# pojo.java

public class AReFundApplyProcess implements Serializable {

       private String prosn  ;
       private String applyid;
       private byte[] annex  ;
       private Object content;
       private MultipartFile[] sourceFile;

// sourceFile geter, seter

在这个pojo中我用于接收文件的MultipartFile字段用的是一个数组,因为在案例中是多文件上传;

在页面上file-box中的文件会通过springMVC存入这个pojo的MultipartFile字段中,对于多文件来讲通过获取角标即可获取到对应的文件;

#serviceImpl.java

  /**
     * uplodaApplyFile
     * 方法描述:文件上传方法;
     * @param request
     */
    public void uplodaApplyFile(
            AReFundApplyProcess arProcess,
            AReFundApply aRefundApply){

        MultipartFile[] uploadfile=arProcess.getSourceFile();//这里用于获取前台传入Bean中Byte字段中的流;
        InputStream fileIs= null;                            //因为案例中是多文件上传,所以是数组;
        aRefundApply.setOrderno(arProcess.getProsn());

        try {
            if(uploadfile != null&& uploadfile.length>0){
                for (int i = 0; i < uploadfile.length; i++) {
                    MultipartFile file=uploadfile[i];
                    fileIs= file.getInputStream();
                    byte[] b = FileCopyUtils.copyToByteArray(fileIs);
                    if(b.length>0){
                        arProcess.setAnnex(b);
                        aReFundApplyCheckService.insertAReFundApplyProcess(arProcess);
                    }
                }
            }
        } catch (IOException e) {
            log.error("上传文件异常...",e);
        }
    }

这里可以看到,MultipartFile类可以有方法获取到一个Inputstrem,这样再将其转换为byte数组即可存入数据库中的BLOB字段了;

顺带一提关于BLOB字段存入Oracle数据库中的问题,经过验证,Mybatis支持直接将byte数组作为BLOB字段存入数据库;只需要在Mapper中指定jdbcType=BLOB即可;

参考资料:

http://blog.csdn.net/songanling/article/details/38951013

时间: 2024-10-28 19:42:26

EasyUI 单个/多个文件上传 SSM+EasyUI的相关文章

easyui+ajaxfileupload,无刷新文件上传

头文件引用 <link href="easyui/themes/default/easyui.css" rel="stylesheet" type="text/css" /> <link href="easyui/themes/icon.css" rel="stylesheet" type="text/css" /> <script src="ea

Spring MVC 4使用Servlet 3 MultiPartConfigElement实现文件上传(带源码)

[本系列其他教程正在陆续翻译中,点击分类:spring 4 mvc 进行查看.源码下载地址在文章末尾.] [翻译 by 明明如月 QQ 605283073] 原文地址:http://websystique.com/springmvc/spring-mvc-4-file-upload-example-using-multipartconfigelement/ 上一篇:Spring MVC 4 使用常规的fileupload上传文件(带源码) 下一篇:Spring MVC 4 文件下载实例(带源码)

springMVC easyUI filebox 单个文件上传

被这个文件上传坑到现在,还是自己技术问题,照着之前extjs项目那边的上传实例,愣是上传不了 到后面就查了下springMVC的文件上传,按照那样搞定了http://blog.csdn.net/jadyer/article/details/7575934 easyui 前端文件 <form id="brandAddForm" method="post" enctype="multipart/form-data"> <table

SSM框架-SpringMVC 实例文件上传下载

SSM框架-SpringMVC 实例文件上传下载 2017-04-17 09:38 4497人阅读 评论(6) 收藏 举报  分类: java基础(3)  目录(?)[+] 目录(?)[+] 林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 本文工程免费下载 一.新建一个Web工程,导入相关的包 springmvc的包+commons-fileupload

ssm框架下的文件上传和文件下载

最近在做一个ssm的项目,遇到了添加附件和下载的功能,在网上查了很多资料,发现很多都不好用,经过摸索,发现了一套简便的方法,和大家分享一下.1.文件上传前台页面使用了easyui,代码如下: <table> <tr> <td>附件</td> <td> <input class="easyui-filebox" type="file" name="file1" id="fi

ajax结合文件上传类进行多文件的单个上传

今天做项目的时候碰见一个问题:之前一个同事离职之前做了一个网站,有一个上传商品详细图片的功能,当时已经完成,但是由于后期程序的有更改以及更改的程序员的水平也是参差不齐,最后导致程序bug很多,由于当时用的是一个框架,最终也没找到说明文档,后来我就重新写了一个结合ajax上传文件的upload.classs.php虽然界面欠缺美观,但是通俗易懂好维护. //首先是页面. index.php <!DOCTYPE html> <html lang="en"> <

Struts2 单个文件上传/多文件上传

1导入struts2-blank.war所有jar包:\struts-2.3.4\apps\struts2-blank.war 单个文件上传 upload.jsp <s:form action="upload2.action" method="post" theme="simple" enctype="multipart/form-data"> <tr> <td id="more&quo

c# 单个文件上传至服务器

#region 单个文件上传至服务器 /// <summary> /// 单个文件上传至服务器 /// </summary> /// <param name="uriAddress">接收文件资源的URI, 例如: http://xxxx/Upload.aspx?UID=11111</param> /// <param name="filePath">要发送的资源文件, 例如: @"D:\work

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码]

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码] 文件上传这东西说到底有时候很痛,原来的asp.net服务器控件提供了很简单的上传,但是有回传,还没有进度条提示.这次我们演示利用swfupload多文件上传,项目上文件上传是比不可少的,大家这个心里都知道.主要提供给源码说明及下载 最终效果图: SWFUpload的特点: 1.用flash进行上传,页面无刷新,且可自定义Flash按钮的样式; 2.可以在浏