zoukankan      html  css  js  c++  java
  • (十一)SpringBoot之文件上传以及

    一、案例  

      1.1  配置application.properties

    #主配置文件,配置了这个会优先读取里面的属性覆盖主配置文件的属性
    spring.profiles.active=dev
    server.port=8888
        
    logging.config=classpath:log4j2-dev.xml
    spring.mvc.view.prefix: /WEB-INF/templates/
    spring.mvc.view.suffix: .jsp
        
    •  spring.http.multipart.enabled=true #默认支持文件上传.
    • spring.http.multipart.file-size-threshold=0 #支持文件写入磁盘.
    • spring.http.multipart.location= # 上传文件的临时目录
    • spring.http.multipart.max-file-size=1Mb # 最大支持文件大小
    • spring.http.multipart.max-request-size=10Mb # 最大支持请求大小

      1.2  编写IndexController

    • 该控制器只用于处理 “/” 和“/index”请求,使之跳转到index.jsp页面
    package com.shyroke.controller;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.servlet.ModelAndView;
    
    @Controller
    @RequestMapping(value = "/")
    public class IndexController {
    
        @RequestMapping(value="index")
        public String index() {
            return "index";
        }
        
        @RequestMapping()
        public String index2() {
            return "index";
        }
    }

      1.3  编写index.jsp

    <body>
        <form method="POST" enctype="multipart/form-data" action="/file/upload"> 
               文件:<input type="file" name="file" />
           <input type="submit" value="上传" />
           </form>
    </body>

      1.4  编写FileController

    package com.shyroke.controller;
    
    import java.io.File;
    import java.io.IOException;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    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;
    
    @Controller
    @RequestMapping(value = "/file")
    public class FileController {
    
        private static final Logger logger = LoggerFactory.getLogger(FileController.class);
    
        @RequestMapping(value = "upload")
        @ResponseBody
        public String upload(@RequestParam("file") MultipartFile file) {
            if (file.isEmpty()) {
                return "文件为空";
            }
    
            // 获取文件名
            String fileName = file.getOriginalFilename();
            logger.info("上传的文件名为:" + fileName);
    
            // 获取文件的后缀名
            String suffixName = fileName.substring(fileName.lastIndexOf("."));
            logger.info("上传的后缀名为:" + suffixName);
    
            // 文件上传路径
            String filePath = "E://";
    
            // 解决中文问题,liunx下中文路径,图片显示问题
            // fileName = UUID.randomUUID() + suffixName;
            
            File dest = new File(filePath + fileName);
    
            // 检测是否存在目录
            if (!dest.getParentFile().exists()) {
                dest.getParentFile().mkdirs();
            }
    
            try {
                file.transferTo(dest);
                return "上传成功";
            } catch (IllegalStateException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return "上传失败";
        }
    
    }

      1.5  结果

     

  • 相关阅读:
    MySQL查看表占用空间大小(转)
    Nginx搭建flv视频点播服务器
    Nginx SPDY Pagespeed模块编译——加速网站载入
    RAD,V模型
    java运算符的优先级
    union和union all的区别
    java数据的5种存储位置(转)
    java对象的初始化过程和创建对象的几种方式
    java异常的原理以及应用
    缓冲与缓存的概念(转)
  • 原文地址:https://www.cnblogs.com/shyroke/p/8024137.html
Copyright © 2011-2022 走看看