Spring Boot 上传文件

1.上传文件

Spring Boot 上传文件也是使用 MultipartFile 类,和 Spring MVC 其实差不多,参考文章:https://www.cnblogs.com/jwen1994/p/11182923.html

HTML

<form enctype="multipart/form-data" method="post" action="/upload">
  文件:<input type="file" name="head_img"/>
  姓名:<input type="text" name="name"/>
  <input type="submit" value="上传"/>
</form>

Java 文件

package com.example.demo.controller;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

import javax.servlet.http.HttpServletRequest;

import com.example.demo.domain.JsonData;

import com.example.demo.domain.JsonData;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

/**
 * 功能描述:文件测试
 *
 * <p> 创建时间:Apr 22, 2018 11:22:29 PM </p>
 * <p> 作者:小D课堂</p>
 */
@Controller
public class FileController {
        private static final String filePath = "F:/IdeaProjects/springbootDemo/src/main/resources/static/images/";

        @RequestMapping(value = "upload")
        @ResponseBody
        public JsonData upload(@RequestParam("head_img") MultipartFile file, HttpServletRequest request) {

             //file.isEmpty(); 判断图片是否为空
             //file.getSize(); 图片大小进行判断

             String name = request.getParameter("name");
             System.out.println("用户名:"+name);

             // 获取文件名
            String fileName = file.getOriginalFilename();
            System.out.println("上传的文件名为:" + fileName);

            // 获取文件的后缀名,比如图片的jpeg,png
            String suffixName = fileName.substring(fileName.lastIndexOf("."));
            System.out.println("上传的后缀名为:" + suffixName);

            // 文件上传后的路径
            fileName = UUID.randomUUID() + suffixName;
            System.out.println("转换后的名称:"+fileName);

            File dest = new File(filePath + fileName);

            try {
                file.transferTo(dest);

                return new JsonData(0, fileName);
            } catch (IllegalStateException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return  new JsonData(-1, "fail to save ", null);
        }
}

文件大小配置,可以在启动类里面配置

@Bean
public MultipartConfigElement multipartConfigElement() {
  MultipartConfigFactory factory = new MultipartConfigFactory();
  //单个文件最大
  factory.setMaxFileSize("10240KB"); //KB,MB
  /// 设置总上传数据总大小
  factory.setMaxRequestSize("1024000KB");
  return factory.createMultipartConfig();
}

2.jar包方式运行Web项目

打包成 jar 包,需要增加 maven 依赖(注意:如果没加相关依赖,执行 maven 打包,运行后会报错:no main manifest attribute, in XXX.jar)

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

然后使用 java 命令运行 jar 包。

3.文件上传和访问需要指定磁盘路径

application.properties 中增加下面配置

web.images-path=/Users/jwen/Desktop
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:${web.upload-path}

原文地址:https://www.cnblogs.com/jwen1994/p/11184566.html

时间: 2024-10-06 14:42:53

Spring Boot 上传文件的相关文章

springboot(十七):使用Spring Boot上传文件

上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个Spring Boot上传文件的小案例. 1.pom包配置 我们使用Spring Boot最新版本1.5.9.jdk使用1.8.tomcat8.0. <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId>

Spring Boot(十七):使用 Spring Boot 上传文件

上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个 Spring Boot 上传文件的小案例. 1.pom 包配置 我们使用 Spring Boot 版本 2.1.0.jdk 1.8.tomcat 8.0. <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId&

Spring Boot上传文件

我们使用Spring Boot最新版本1.5.9.jdk使用1.8.tomcat8.0. <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent> <properties

Java Spring Boot 上传文件和预览文件地址解析

@RequestMapping(value ="/upload",method = RequestMethod.POST) @Permission(isAjax=false) public String Upload(HttpServletRequest request, HttpServletResponse response,@RequestParam("files") MultipartFile[] files) { List<String> fi

spring mvc上传文件的简单例子总结及注意事项

1.创建maven项目         在pom.xml里面引入该依赖的jar包,pom.xm的代码如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven

Spring MVC上传文件

1.applicationContext.xml 1 <bean id="multipartResolver" 2 class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 3 <property name="maxUploadSize" value="104857600" /> 4 <property

spring mvc上传文件服务器配置

在使用springMVC进行系统实现时,springMVC默认的解析器里面是没有加入对文件上传的解析的.但如果你想使用springMVC对文件上传的解析器来处理文件上传的时候就需要在spring的applicationContext里面加上springMVC提供的MultipartResolver的申明.客户端每次进行请求的时候,springMVC都会检查request里面是否包含多媒体信息,如果包含了就会使用MultipartResolver进行解析,springMVC会使用一个支持文件处理的

spring mvc 上传文件

springmvc 上传文件步骤: 第一 拷贝所需jar 第二 需要在springmvc(springmvc-servlet.xml)中配置:SpringMVC上传文件时,需要配置MultipartResolver处理器 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">         <p

spring MVC上传文件演示

//相比smartUpload功能上感觉确实有点心有意力不足的感觉,就安全性判断后缀,smartUpload就非常方便. public ModelAndView addFileUp(HttpServletRequest request,HttpServletResponse response) throws Exception { String preName = genName.doMake();//设置文件前缀名时间戳的MD5值 String fileName = null; //路径+文件