`

spring MVC 文件上传

 
阅读更多

第一步,在maven项目配置依赖包 pom.xml文件中加入:

<dependency>
     <groupId>commons-fileupload</groupId>
     <artifactId>commons-fileupload</artifactId>
     <version>1.3.1</version>
 </dependency>

第二步: 在spring-application.xml配置文件增加bean配置

<!-- 上传组件-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!--设置上传编码格式 -->
<property name="defaultEncoding" value="utf-8"/>
    <!--设置最大上传大小 -->
<property name="maxUploadSize" value="5242880"/>
</bean>

第三步:前端页面代码这里通过ajax提交上传文件,通过var formData = new FormData($( "#uploadForm" )[0]); FormData 获取上传文件的对象。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+ request.getServerPort()+path+"/";
    request.setAttribute("basePath", basePath);
%>
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Cache-Control" content="no-cache">
    <meta http-equiv="Expires" content="0">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

    <title> </title>
    <base href="${basePath}">

    <link rel="stylesheet" href="lib/bootstrap-3.3.7-dist/css/bootstrap.css">
    <link rel="stylesheet" href="css/style.css">

</head>

<body class="body-background">

<div class="iframe-wrapper-background">


    <div>
        <br>
        <form action="#"  id="uploadForm" enctype="multipart/form-data"  target="right-content-iframe">
            <div class="container-fluid">

                <div class="row ">
                    <div class="col-xs-12 iframe-content-style">
                        <div class="form-group">
                            <input type="hidden" id="machineId" name="machineId" value="${machineId}"/>

                            <label class="text-font-color-white text-font-size-16px" for="file">文件上传</label>
                            <input type="file" name="file" id="file">
                        </div>
                    </div>
                </div>
                <br>
                <div class="row">
                    <div class="col-xs-7"></div>
                    <div class="col-xs-2 center-block">
                        <input type="submit" id="form-submit" class="btn btn-primary" value="提交">
                    </div>
                    <div class="col-xs-2 center-block">
                        <input type="button" id="form-cancel" class="btn btn-default" value="取消">
                    </div>
                </div>
                <br>
            </div>

        </form>

    </div>


</div>



<script src="lib/jQuery/jquery-3.1.1.js"></script>
<script src="lib/layer/layer.js"></script>

<script type="application/javascript">

    $(document).ready(function () {


        $('#form-submit').on("click", function (check) {
           var filename  = $("#file").val();
            console.log(filename);
            if(filename){
                if(filename.indexOf(".xlsx")>0 || filename.indexOf(".xls")>0){
                    doUpload();
                    check.preventDefault();

                }else{
                    layer.tips("请上传excel文件!", "#form-submit",{tips: 1});
                    check.preventDefault();
                }

            } else {
                layer.tips("请选择要上传的文件!", "#form-submit",{tips: 1});
                check.preventDefault();
            }
        });
        $('#form-cancel').on("click", function () {
            var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
});
    });

    function doUpload() {
        var formData = new FormData($( "#uploadForm" )[0]);
        console.log(formData)
        $.ajax({
            url: './bsWkMaintenance/fileUpload' ,
            type: 'POST',
            data: formData,
            async: false,
            cache: false,
            contentType: false,
            processData: false,
            success: function (returndata) {
                alert(returndata);
                parent.getPageData();
                var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
},
            error: function (returndata) {
                alert(returndata);
            }
        });
    }
</script>

</body>
</html>

 

第四步,后台java 代码。通过MultipartFile 接受到上传文件的对象,可以进行 file.transferTo(new File(path)) 保存到服务器上,我这里并不保存文件,对上传的文件进行解析处理。

 

/*
 *采用spring提供的上传文件的方法
 */
@ResponseBody
@RequestMapping("/fileUpload")
public ReturnData fileUpload(@RequestParam(value = "file") MultipartFile file,@RequestParam(value = "machineId" ) Integer machineId) throws IllegalStateException, IOException {
    ReturnData returnData = new ReturnData(Boolean.TRUE);
   
    //将当前上下文初始化给  CommonsMutipartResolver (多部分解析器)
System.out.println(machineId);
    try {
        if (file != null) {
            //String path = "E:/springUpload" + file.getOriginalFilename();
            //上传
            // file.transferTo(new File(path));
List<List<Object>> list = null ;
            if(file.getOriginalFilename().endsWith(".xlsx")){
                list = ExcelUtils.readExcel((FileInputStream) file.getInputStream());
            }else {
                list = ExcelUtils.readExcel03((FileInputStream) file.getInputStream());
            }

            for(int i=0;i<list.size();i++){
                List<Object> subList = list.get(i);
                System.out.println("row :"+i+" ");
                for(int j=0;j<subList.size();j++){
                    Object obj = subList.get(j);
                    System.out.print("col :"+j+" "+obj);
                }
            }
            System.out.println(file.getSize());
        }
    }catch (Exception e){
        e.printStackTrace();
    }

    
   
    return returnData;
}

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    spring mvc文件上传实现进度条

    总的来说,实现Spring MVC文件上传的进度条功能需要前端和后端的紧密配合。前端负责用户交互和进度信息的显示,后端则需处理分块上传、进度跟踪和异步响应。通过这样的方式,我们可以在不阻塞用户界面的情况下,提供...

    Spring MVC 文件上传下载 后端 - Java.zip

    在Spring MVC框架中,文件上传和下载是常见的功能需求,特别是在构建Web应用程序时。这个压缩包文件"Spring MVC 文件上传下载 后端 - Java.zip"包含的文档可能详细阐述了如何在Java后端实现这些功能。以下是关于...

    Spring MVC文件上传

    在Spring MVC框架中,文件上传是一项常见的功能,它允许用户通过Web界面上传本地文件到服务器。这篇文章将深入探讨如何在Spring MVC中实现文件上传,并基于提供的链接和文件名称列表进行详细解析。 首先,理解文件...

    spring mvc 文件上传 代码完整版

    在Spring MVC框架中,文件上传是一项常见的功能,用于接收用户通过表单提交的文件数据。这一功能对于构建Web应用程序,尤其是那些需要用户交互并处理上传文件的系统来说至关重要。本项目提供了一个完整的、经过测试...

    Spring MVC文件上传下载

    本篇文章将深入探讨Spring MVC如何实现文件上传和下载。 ### 文件上传 1. **依赖配置**:在Spring MVC项目中,为了支持文件上传,需要引入Apache Commons FileUpload库,它提供了处理多部分HTTP请求的能力。在`pom...

    spring mvc文件上传下载实例

    这篇博客“spring mvc文件上传下载实例”将引导我们如何在Spring MVC项目中实现这两个功能。 首先,我们需要理解Spring MVC的基本概念。Spring MVC是Spring框架的一个模块,它提供了处理HTTP请求并返回响应的能力,...

    Spring MVC 文件上传下载

    Spring MVC 是一个强大的 web 应用开发框架,它提供了丰富的功能来处理用户请求,包括文件上传和下载。本文将深入探讨如何使用 Spring MVC 实现文件的上传与下载。 首先,要实现文件上传,我们需要引入一些必要的...

    第五章 Spring MVC 文件上传

    标题 "第五章 Spring MVC 文件上传" 涉及的核心知识点主要围绕Spring MVC框架中的文件上传功能,这是一个在Web开发中常见的需求,特别是处理用户通过表单提交的文件,如图片、文档等。在这个主题下,我们需要理解...

    spring mvc 文件上传

    在Spring MVC框架中,文件上传是一项常见的功能,用于允许用户通过Web界面上传文件到服务器。在本篇博文中,我们将深入探讨如何实现这一功能,并基于`FileUploadController.java`这个类来讲解相关知识点。 首先,...

    精通Spring MVC 4

    本书共计10章,分别介绍了快速搭建Spring Web应用、精通MVC结构、URL映射、文件上传与错误处理、创建Restful应用、保护应用、单元测试与验收测试、优化请求、将Web应用部署到云等内容,循序渐进地讲解了Spring MVC4...

    spring mvc上传文件

    在本文中,我们将深入探讨如何使用Spring MVC框架与Ajax技术结合来实现文件上传的功能。Spring MVC是Spring框架的一部分,提供了一种模型-视图-控制器(MVC)架构模式,用于构建Web应用程序。Ajax(Asynchronous ...

    spring mvc uploadify上传文件

    在本文中,我们将深入探讨如何使用Spring MVC框架与uploadify插件进行文件上传,特别是针对图片的上传。Spring MVC是Spring框架的一部分,专门用于构建Web应用程序,而uploadify是一款前端JavaScript插件,使得用户...

    Spring mvc文件上传下载代码实例

    Spring MVC 文件上传下载代码实例 Spring MVC 文件上传下载代码实例中主要介绍了如何在 Spring MVC 框架中实现文件上传和下载的功能。下面是相关的知识点: 1. 文件上传的必要条件: 在 Spring MVC 中,文件上传...

    springMVC 文件上传jar文件及源码

    在深入学习Spring MVC文件上传和下载的过程中,理解HTTP协议、表单提交以及Spring MVC的内部工作原理是非常重要的。同时,熟悉相关的API和最佳实践,能够帮助我们构建健壮且安全的文件上传下载功能。

    spring mvc 上传文件显示进度

    在Spring MVC中实现文件上传并显示进度是一项常见的需求,特别是在用户需要等待较长时间的大型文件上传时。这个功能可以通过监听文件上传的进度并在前端实时更新来提升用户体验。下面将详细介绍如何利用Spring MVC...

    ssm框架--spring mvc实现文件上传

    在"ssm框架--spring mvc实现文件上传"这个项目中,我们将重点探讨如何在Spring MVC中实现实现文件上传的功能。 文件上传是Web应用中的常见需求,Spring MVC提供了便捷的API来处理这一任务。首先,你需要在表单中...

    spring MVC 上传 &下载

    #### 二、Spring MVC文件上传配置 为了使Spring MVC能够处理文件上传,首先需要在Spring MVC的配置文件中添加相应的配置。这里以`springmvc-servlet.xml`为例: 1. **引入必要的命名空间**:确保配置文件包含了`...

    spring mvc 附件上传代码

    本文档将详细介绍如何在Spring MVC环境中配置并实现文件上传功能,包括必要的`web.xml`配置、Spring配置文件(如`upload-servlet.xml`)设置及控制器的具体编写。 #### 二、`web.xml`配置详解 `web.xml`文件用于...

Global site tag (gtag.js) - Google Analytics