SpringMVC文件上传、文件下载多文件上传及jrebel的使用与配置1

简介: SpringMVC文件上传、文件下载多文件上传及jrebel的使用与配置1

#我的编程语言学习笔记#

一.文件上传

1.导入依赖

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

2.配置文件上传解析器

在spring-mvc.xml文件中添加文件上传解析器。

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!-- 必须和用户JSP 的pageEncoding属性一致,以便正确解析表单的内容 -->
    <property name="defaultEncoding" value="UTF-8"></property>
    <!-- 文件最大大小(字节) 1024*1024*50=50M-->
    <property name="maxUploadSize" value="52428800"></property>
    <!--resolveLazily属性启用是为了推迟文件解析,以便捕获文件大小异常-->
    <property name="resolveLazily" value="true"/>
</bean>

CommonsMultipartResolver是MultipartResolver接口的实现类。

MultipartResolver是用于处理文件上传,当收到请求时DispatcherServlet的checkMultipart()方法会调用MultipartResolver的isMultipart()方法判断请求中是否包含文件,如果请求数据中包含文件,则调用MultipartResolver的resolverMultipart()方法对请求的数据进行解析,然后将文件数据解析MultipartFile并封装在MultipartHTTPServletRequest(继承了HTTPServletRequest)对象中,最后传递给Controller。

3.配置服务器存放文件地址

3.1.

3.2 将项目部署到服务器上

3.3 配置相应路径

3.4 选择我们control层的方法中定义的路径

3.5 最后保存好即可

4.导入PropertiesUtil工具类

1.通过PropertiesUtil工具类加载配置页目录文件

package com.YU.utils;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class PropertiesUtil {
  public static String getValue(String key) throws IOException {
    Properties p = new Properties();
    InputStream in = PropertiesUtil.class.getResourceAsStream("/resource.properties");
    p.load(in);
    return p.getProperty(key);
  }
}

2.同时在代码中我们可以发现,通过工具类读取resource.properties文件,在配置文件resource.properties中,我们将一些服务器存放文件地址定义在该文件中,方便我们后期修改配置文件

3.resource.properties文件

dir = D:/deposit/upload/
server = /upload/

5.编写Controller层

通过Controller层利用MultipartFile类接收前端传递的文件到后台,以流的方式上传到服务器中,

并将数据库中数据的字段(图片路径)进行修改

//文件上传
    @RequestMapping("/upload")
    public String upload(HBook hBook,MultipartFile bfile){
        try {
        String dir = PropertiesUtil.getValue("dir");
        String server = PropertiesUtil.getValue("server");
        String filename = bfile.getOriginalFilename();
        FileUtils.copyInputStreamToFile(bfile.getInputStream(), new File(dir + filename));
        hBook.setImg(server+filename);
        hBookbiz.updateByPrimaryKeySelective(hBook);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "redirect:list";
    }

6.编写前端页面

编写前端页面表单,通过post请求的方式将图片上传到服务器,并将数据进行修改

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>图片上传</title>
</head>
<body>
<form action="${pageContext.request.contextPath }/book/upload" method="post" enctype="multipart/form-data">
    <label>书籍编号:</label><input type="text" name="bid" readonly="readonly" value="${param.bid}"/><br/>
    <label>书籍图片:</label><input type="file" name="bfile"/><br/>
    <input type="submit" value="上传图片"/>
</form>
</body>
</html>

注意:表单的提交方式为enctype="multipart/form-data" ,它是一个HTML表单属性,用于指定将表单数据编码为多部分(multipart)的格式,以便支持文件上传,文件上传需要额外的服务器端处理逻辑,包括文件存储、验证、处理等。在服务器端代码中,需要根据我们的需求来处理上传的文件

7.测试结果

我们在将数据传输到服务器时,可以通过查看服务器部署的地址查看我们传输的文件

目录
相关文章
|
7月前
|
前端开发 Java 应用服务中间件
SpringMVC之文件上传下载以及jrebel的使用
SpringMVC之文件上传下载以及jrebel的使用
41 0
|
8月前
|
存储 前端开发 Java
【SpringMVC】文件上传与下载、JREBEL使用
它可以让用户上传文件到服务器或者从服务器下载文件。这对于许多Web应用程序来说是必不可少的功能,比如在线存储、文档管理系统等。SpringMVC提供了一些方便的注释和API,可以使文件上传和下载变得非常简单。在文件上传方面,SpringMVC提供了。类,可以轻松地处理上传的文件。在文件下载方面,SpringMVC提供了。在你的spring mvc里面的pom.xml里面添加文件上传的依赖。并且下载,安装成功之后会让你重启,重启之后按操作来。根据自己的表来也是可以的,只是用来保存数据。
|
8月前
|
前端开发
SpringMVC文件上传、文件下载多文件上传及jrebel的使用与配置3
SpringMVC文件上传、文件下载多文件上传及jrebel的使用与配置3
35 0
|
4月前
|
前端开发 Java Apache
JAVAEE框架技术之6-springMVC拦截器和文件上传功能
JAVAEE框架技术之6-springMVC拦截器和文件上传功能
72 0
JAVAEE框架技术之6-springMVC拦截器和文件上传功能
|
8月前
|
存储 前端开发 Java
【SpringMVC】一行代码完成文件上传&JRebel的使用
【SpringMVC】一行代码完成文件上传&JRebel的使用
44 0
|
5月前
|
前端开发 JavaScript Java
Spring Boot中Spring MVC的基本配置讲解与实战(包括静态资源配置,拦截器配置,文件上传配置及实战 附源码)
Spring Boot中Spring MVC的基本配置讲解与实战(包括静态资源配置,拦截器配置,文件上传配置及实战 附源码)
55 1
|
5月前
SpringMVC-拦截器参数及拦截器链配置
SpringMVC-拦截器参数及拦截器链配置
35 0
|
5月前
|
SQL JavaScript Java
SpringMVC之文件上传下载以及jrebel的使用
SpringMVC之文件上传下载以及jrebel的使用
38 0
|
5月前
|
Java Spring
SpringMVC多文件上传
SpringMVC多文件上传
37 0
|
6月前
|
存储 前端开发 Java
SpringMVC的文件上传&文件下载&多文件上传---详细介绍
SpringMVC的文件上传&文件下载&多文件上传---详细介绍
42 0