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

MacOs下springBoot实现图片上传下载功能

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

MacOs下springBoot实现图片上传下载功能

首先我们要知道  MultipartFile  自动封装上传过来的文件。springboot已经帮我们封装好其功能,我们需要会调用它的方法(headerImg.transferTo)即可。

MultipartFile: 单文件上传

MultipartFile[ ] :多文件上传

这边要注意的是:下载下来图片保存的路径问题:切忌不要忘了后面的“/”或“\”

windows:H:\cache\  拼接上图片名;

MacOs: 绝对路径  拼接图片名。即"/Users/XXX/XXX/imagesboot/"

package com.liny.admin.controller;


import com.liny.admin.pojo.PictureUtil;
import com.liny.admin.utils.FileNameUtil;
import com.sun.java.swing.plaf.motif.MotifLabelUI;
import lombok.extern.log4j.Log4j;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;


@Controller
@Slf4j
public class FormTestController {

    @GetMapping("/form_layouts")
    public String form_layouts(){
        return "form/form_layouts";
    }

    
    @PostMapping("/upload")
    public String upload(@RequestParam("email")String email,
                         @RequestParam("username") String username,
                         @RequestPart("headerImg") MultipartFile headerImg,
                         @RequestPart("photos") MultipartFile[] photos){


        log.info("上传的信息:email={},username={},headerImg={},photos={}",
                email,username,headerImg.getSize(),photos.length);

      
        if(!headerImg.isEmpty()){
            //保存到文件服务器,OSS服务器
            String originalFilename = headerImg.getOriginalFilename();
            try {
                headerImg.transferTo(new File("H:\cache\"+originalFilename));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        if(photos.length > 0){
            for (MultipartFile photo : photos) {
                if(!photo.isEmpty()){
                    String originalFilename = photo.getOriginalFilename();
                    try {
                        photo.transferTo(new File("H:\cache\"+originalFilename));
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
        return "main";
    }
}

前端代码块:

最后如果遇到文件过大问题,我们只需要在yml文件下设置下面这段代码即可,可适当修改

max-file-size:  单文件最大内存
max-request-size: 总文件内存
spring:
  servlet:
    multipart:
      max-file-size:  10MB
      max-request-size: 100MB
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/937413.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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