码迷,mamicode.com
首页 > 编程语言 > 详细

Spring Boot 上传文件

时间:2019-07-14 17:49:17      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:ISE   Fix   des   element   head   nbsp   名称   user   ret   

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}

 



Spring Boot 上传文件

标签:ISE   Fix   des   element   head   nbsp   名称   user   ret   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!