SpringBoot简单实现文件上传

目录
  • 1.创建SpringBoot项目
  • 2.修改application.properties配置文件
  • 3.编写控制器UserController类
  • 4.编写前端页面index.html
  • 5.效果展示

前言:

这里给大家介绍如何在SpringBoot项目中实现文件上传功能!

1.创建SpringBoot项目

打开IDEA,点击文件,选择新建项目,点击Spring Initializr,然后根据自己的需求设置项目名称,位置以及JDK。这里需要注意,服务器的URL最好设置为阿里云服务器,这样可以使得项目加载地更快。

点击下一步后,勾选Spring Web依赖与Thymeleaf模板引擎后点击完成即可

2.修改application.properties配置文件

因为SpringBoot项目中默认文件的最大上传大小为1MB,而1MB的上传容量无法满足我们开发工程中的文件上传需求,因此我们需要修改配置文件。

# 设置上传文件的大小为10MB
spring.servlet.multipart.max-file-size=10MB

3.编写控制器UserController类

这里需要注意的是,使用MultipartFile类来处理接受前端上传的文件,通过它可以获取文件的名称,类型,大小等等信息。

package com.xing.springbootfileupload.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
@Controller
public class UserController {
    @RequestMapping("/")
    public String welcome(){
        return "index";
    }//这里相当于设置欢迎页

    @RequestMapping("/upload")
    @ResponseBody
    public String upload(String name, MultipartFile phone) throws IOException {//实现文件上传
        System.out.println("上传的用户名为:"+name);
        System.out.println("图像的原始名称为:"+phone.getOriginalFilename());
        System.out.println("上传文件的类型为:"+phone.getContentType());
        saveFile(phone);
        return "文件上传成功";
    }

    public void saveFile(MultipartFile phone) throws IOException {//将文件保存到本地
        String dir="这里写自己要保存图片的绝对路径";//建议这里写resources目录的绝对路径
        File path=new File(dir+"/upload/");
        if(!path.exists()){//如果当前目录不存在
            path.mkdir();
        }
        File file=new File(dir+"/upload/"+phone.getOriginalFilename());
        phone.transferTo(file);//将此图像保存到file本地
    }
}

4.编写前端页面index.html

编写表单的时候要注意,我们一定要写enctype=“multipart/form-data” 来控制文件的编码,否则文件会上传失败!

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>欢迎页</title>
</head>
<body>
<h1>请自行上传用户名与图像</h1>
<hr>
<form enctype="multipart/form-data" method="post" th:action="@{/upload}">
    <p>用户名:<input type="text" name="name"></p>
    <p>用户名:<input type="file" name="phone"></p>
    <input type="submit" value="上传">
</form>
</body>
</html>

5.效果展示

直接运行SpringBoot启动类,运行结果如下所示:

选择合适的用户名与图片文件后,点击上传即可看见浏览器显示上传成功!

并且可以在后台看见上传文件的相关信息。

到此这篇关于SpringBoot简单实现文件上传的文章就介绍到这了,更多相关SpringBoot文件上传内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • springboot如何配置上传文件的maxRequestSize

    目录 配置上传文件的maxRequestSize SpringBoot-2.0 SpringBoot-1.4 SpringBoot-1.4之前 设置上传文件大小的两种方法 springboot 1.5.X系列处理方式 Springboot 2.X系列配置 配置上传文件的maxRequestSize springboot配置上传文件的maxRequestSize,根据boot版本的不同会 有些差别,设置时,是相当坑的,一不注意就白设了 在application.properties中的配置为 Sp

  • SpringBoot整合Minio实现上传文件的完整步骤记录

    目录 Minio 安装 Minio 使用docker安装 拉取镜像 启动 使用9000端口 登录控制台 创建存储桶 设置桶权限 创建 Java 客户端 依赖 配置文件 配置文件配置类 创建 minio 客户端 文件地址返回路径实体类 上传文件工具类 测试上传文件 Controller 测试上传 控制台也可以看到上传的视频 总结 Minio 上传文件如果不使用云服务的话,需要本地搭建,一般选择 FastDFS 但是 FastDFS 安装比较复杂,今天了解一款安装使用更简单的存储系统 MinIO M

  • Java全面深入探究SpringBoot拦截器与文件上传

    目录 拦截器 拦截器的概念 拦截器的配置 配置拦截器 拦截器的原理 文件上传 更改文件上传大小 拦截器 拦截器的概念 动态拦截Actioon调用的对象,使开发者在一个Actioon执行的前后执行一段代码,也可以在Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式. 作用: 动态拦截Action调用的对象(也就是实际项目中的controller层的接口) 一般拦截器用于对用户访问的限制.如当用户没有登录时访问主页面,则可以使用拦截器进行拦截并重定向到登录页面.

  • Springboot上传文件时提示405问题及排坑过程

    目录 Springboot上传文件时提示405 解决方案1 解决方案2 Springboot使用过程中遇到的一些问题 异常一 异常二:Mysql连接报错 异常三:整合Druid密码解密失败 Springboot上传文件时提示405 问题描述:上传文件时请求不通,状态码返回405,如下图:  问题分析:405 Method Not Allowed,请求行中指定的请求方法不能被用于请求相应的资源.该响应必须返回一个Allow 头信息用以表示出当前资源能够接受的请求方法的列表.简单说就是请求方法不支持

  • SpringBoot上传文件大小受限问题的解决办法

    目录 1.控制台异常 2.上传文件默认参数 3.解决方法 3.1.方法1(在配置文件.yml或者.properties中直接修改参数) 3.2.方法2(自定义config配置类) 总结 今天在做项目学习的过程中,需要用到文件上传,启动项目正常,访问上传post请求突然报出了一个异常,特此记录一下. 1.控制台异常 org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceed

  • SpringBoot整合MinIO实现文件上传的方法详解

    目录 前言 1. MinIO 简介 2. MinIO 安装 3. 整合 Spring Boot 4. 配置nginx 5. 小结 前言 现在 OSS 服务算是一个基础服务了,很多云服务厂商都有提供这样的服务,价格也不贵,松哥自己的网站用的就是类似的服务. 不过对于中小公司来说,除了购买 OSS 服务之外,也可以自己搭建专业的文件服务器,自己搭建专门的文件服务器的话,曾经比较专业的做法是 FastDFS,松哥之前也专门为之录过视频发在 B 站上,感兴趣的小伙伴可以自行查看.不过 FastDFS 搭

  • SpringBoot实现文件上传与下载功能的示例代码

    目录 Spring Boot文件上传与下载 举例说明 1.引入Apache Commons FileUpload组件依赖 2.设置上传文件大小限制 3.创建选择文件视图页面 4.创建控制器 5.创建文件下载视图页面 6.运行 Spring Boot文件上传与下载 在实际的Web应用开发中,为了成功上传文件,必须将表单的method设置为post,并将enctype设置为multipart/form-data.只有这种设置,浏览器才能将所选文件的二进制数据发送给服务器. 从Servlet 3.0开

  • springboot大文件上传、分片上传、断点续传、秒传的实现

    对于大文件的处理,无论是用户端还是服务端,如果一次性进行读取发送.接收都是不可取,很容易导致内存问题.所以对于大文件上传,采用切块分段上传,从上传的效率来看,利用多线程并发上传能够达到最大效率. 本文是基于 springboot + vue 实现的文件上传,本文主要介绍服务端实现文件上传的步骤及代码实现,vue的实现步骤及实现请移步本人的另一篇文章 vue 大文件分片上传 - 断点续传.并发上传 上传分步: 本人分析上传总共分为: 检查文件是否已上传,如已上传可实现秒传 创建临时文件(._tmp

  • SpringBoot简单实现文件上传

    目录 1.创建SpringBoot项目 2.修改application.properties配置文件 3.编写控制器UserController类 4.编写前端页面index.html 5.效果展示 前言: 这里给大家介绍如何在SpringBoot项目中实现文件上传功能! 1.创建SpringBoot项目 打开IDEA,点击文件,选择新建项目,点击Spring Initializr,然后根据自己的需求设置项目名称,位置以及JDK.这里需要注意,服务器的URL最好设置为阿里云服务器,这样可以使得项

  • springboot+vue实现文件上传下载

    本文实例为大家分享了springboot+vue实现文件上传下载的具体代码,供大家参考,具体内容如下 一.文件上传(基于axios的简单上传) 所使用的技术:axios.springboot.vue; 实现思路:通过h5 :input元素标签进行选择文件,获取所选选择的文件路径,new fromdata对象,设置fromdata的参数,设置axios对应的请求头,最后通过axios发送post请求后端服务.后端服务同过MultipartFile进行文件接收.具体代码如下: 前端代码: 1.创建v

  • thinkPHP3.2简单实现文件上传的方法

    本文实例讲述了thinkPHP3.2简单实现文件上传的方法.分享给大家供大家参考,具体如下: IndexController.class.php: <?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { function index(){ $this->display(); } public function upload(){ $upload = new

  • Python+django实现简单的文件上传

    今天分享一下Django实现的简单的文件上传的小例子. 步骤  •创建Django项目,创建Django应用  •设计模型  •处理urls.py 以及views.py  •设计模板,设计表单  •运行项目,查看数据库 下面我们就一起来分别完成每一个小部分吧. 创建项目和应用 django-admin startproject Django_upload django-admin startapp app 添加一个名为upload的目录,待会要用哦. 然后记得在settings.py 中的INS

  • jQuery+ajax简单实现文件上传的方法

    本文实例讲述了jQuery+ajax简单实现文件上传的方法.分享给大家供大家参考,具体如下: 可以通过ajax来提交表单,而不会刷新页面.主要使用的方法是 $("#formID").ajaxSubmit()方法. 1.要引入js插件 需要下载的附件:jquery.form.js 2.页面代码: <script src="project/js/jquery.form.js" type="text/javascript"></scr

  • 使用nodejs+express实现简单的文件上传功能

    1.建立express项目 express -e nodejs-uploadfile 2.下载multer中间件 npm i multer or yarn multer 3.在routes/index.js中引用multer,由于还要使用到文件操作,还要引用fs模块,并指定文件上传目录 const multer = require('multer'); const fs = require('fs'); const UPLOAD_PATH = './uploads' 单文件上传: index.h

  • python3写的简单本地文件上传服务器实例

    python是个很好玩的东西?好吧我随口说的,反正因为各种原因(其实到底是啥我也不知道),简单的学习了下python,然后写了一个上传文件上服务器的小玩具练手. 大概功能是这样: 1.获取本地文件列表(包括文件夹) 2.检查服务器上是否存在,不存在直接上传,存在的话,文件夹无视,文件比较大小,大小不一致则覆盖,最后检查服务器上是否存在本地没有的文件,存在则删除 3.之后增加了忽略列表,忽略文件类型 4.然后增加了重启tomcat,但是这个功能未进行测试 大概就是这个样子,哦了,丢代码丢代码 #!

  • SpringBoot后台实现文件上传下载

    SpringBoot后台如何实现文件上传下载? 最近做的一个项目涉及到文件上传与下载.前端上传采用百度webUploader插件.有关该插件的使用方法还在研究中,日后整理再记录.本文主要介绍SpringBoot后台对文件上传与下载的处理. 单文件上传 // 单文件上传 @RequestMapping(value = "/upload") @ResponseBody public String upload(@RequestParam("file") Multipar

  • SpringBoot+layui实现文件上传功能

    什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适). 页面代码(只需要引入基础layui的css与js) <fieldset c

  • SpringBoot实现单文件上传

    SpringBoot实现单文件上传功能,供大家参考,具体内容如下 架构为springboot+thymeleaf,采用ajax方式提交 1. 页面testFile.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>测试文件上传</title> <script src="../static/jquery/jquery-2.

随机推荐