栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot文件上传(本地存储)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot文件上传(本地存储)

有时,我们上传的文件会直接存放在本地(linux服务器)上,,现在直接开始实战:

  • 依赖

    
    
        org.springframework.boot
        spring-boot-starter-web
    
    
  • yml配置,配置文件上传大小限制,因为其默认限制是1mb,所以上传文件稍大就会失败

    # 设置内置Tomcat请求大小为20MB
    server.tomcat.max-http-form-post-size=20MB
    # 设置请求最大大小为20MB
    spring.servlet.multipart.max-request-size=20MB
    # 设置文件上传最大大小为20MB
    spring.servlet.multipart.max-file-size=20MB
    
    
  • 设置全局常量以及配置mvc映射

    public class GlobalConstant {
    
        //上传文件路径
        public static final String FILE_REAL_PATH = "file:d:/file/";
    
        //映射路径
        public static final String FILE_MAPPING_PATH = "/file
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler(GlobalConstant.FILE_MAPPING_PATH)
                    .addResourceLocations(GlobalConstant.FILE_REAL_PATH);
        }
    }
    
  • 页面

    
    
    
        
        文件上传
    
    
    
    
  • controller

    @Controller
    @RequestMapping("/sysFile")
    public class SysFileController {
    
        @Autowired
        private ISysFileService fileService;
    
    
        @GetMapping("/toFilePage")
        public String toFilePage(){
            return "file";
        }
    
        @PostMapping("/upload")
        @ResponseBody
        public AjaxResult upload(@RequestParam(value = "file", required = true) MultipartFile file) throws Exception {
    
            //文件不为空
            if(file.isEmpty()){
                throw new ServiceException("上传文件不能为空");
            }
    
            //真实上传路径是否存在,不存在创建该路径
            File fileRealPath = new File(GlobalConstant.FILE_REAL_PATH);
            if(!fileRealPath.exists()){
                fileRealPath.mkdirs();
            }
    
            //开始处理上传文件
            String fileName = file.getOriginalFilename();
            String newFileName = getTime()+ "_" + fileName;
            file.transferTo(new File(fileRealPath, newFileName));
    
            //把虚拟路径存进数据库
            SysFile sysFile = new SysFile();
            sysFile.setFileName(fileName);
            sysFile.setFileUrl(GlobalConstant.FILE_MAPPING_PATH_PREFIX + newFileName);
            fileService.save(sysFile);
    		
            return AjaxResult.suc();
        }
    	
        //新图片名称前缀
        public String getTime(){
            String curTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
            return curTime;
        }
    }
    

准备完成之后,访问http://localhost:8080/sysFile/toFilePage,上传我们的图片,可以看到D盘存储了我们上传的图片,并且虚拟路径存进数据库[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jxSvltKe-1651847407926)(…/image-20220506140347553.png)]

等下图片回显访问http://localhost:8080/file/20220506134146_test.jpg就可以显示了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/863452.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号