SpringBoot后端图片上传

在控制层controller:

方法一:

package com.example.windward.controller;


import com.example.windward.entity.UserInfo;
import com.example.windward.service.UserInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

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

@RestController
@RequestMapping("/upphoto")
@CrossOrigin(origins = "*",maxAge = 3600)
public class UploadUser {

    @Autowired
    UserInfoService userInfoService;

    @PostMapping("/fileUpload")
    public String fileUpload(@RequestParam MultipartFile file, UserInfo userInfo) throws IOException {
        /**
         * 上传图片
         */
        System.out.println(userInfo.getPhoto());

        String filePath = "上传图片的路径";
        //获取原始图片的拓展名
        String originalFilename = file.getOriginalFilename();
        //新的文件名字
        String newFileName = UUID.randomUUID() + originalFilename;
        //封装上传文件位置的全路径
        File targetFile = new File(filePath, newFileName);
        //把本地文件上传到封装上传文件位置的全路径
        file.transferTo(targetFile);
        userInfo.setPhoto(newFileName);
        System.out.println("新文件名:"+newFileName);
        return userInfo.getPhoto();
    }
}

方法二:

package com.example.studengmc03.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

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

@RestController
@RequestMapping("/upfile")
@CrossOrigin(origins = "*",maxAge = 3600)
public class UpfileController {

    //要上传的路径
    @Value("${upfile.photoPath}")
    String path;

    @PostMapping("/photo")
    public String upphoto(@RequestParam MultipartFile file) throws IOException {

        //获得原始文件名 123.jpg
        String originName = file.getOriginalFilename();
        //新文件名 5e37e417-7694-4604-bf2e-987f9abe959a
        String filename = UUID.randomUUID().toString()+originName.substring(originName.lastIndexOf("."));
        //将文件保存到指定
        file.transferTo(new File(path+filename));
        //向客户端浏览器返回文件名
        return filename;
    }
}

yaml:

  servlet:
    multipart:
      max-file-size: 500MB #文件最大限制
      max-request-size: 500MB #请求最大限制
#图片上传路径
upfile:
  photoPath: 图片的路径(不需要带引号)

方法三:(当前后端分离时,同时上传两个文件夹

package com.example.windward.controller;


import com.example.windward.entity.Clerk;
import com.example.windward.entity.UserInfo;
import com.example.windward.service.ClerkService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.UUID;

@RestController
@RequestMapping("/upflie")
@CrossOrigin(origins = "*",maxAge = 3600)
public class UploadClerk {
    @Autowired
    ClerkService clerkService;

    @PostMapping("/uploadclerk")
    public String fileUpload(@RequestParam MultipartFile file, Clerk clerk) throws IOException {
        /**
         * 上传图片
         */
        System.out.println(clerk.getCardphoto());

        String filePath = "上传图片的地址";
        String filePath2 = "上传图片的地址";
        //获取原始图片的拓展名
        String originalFilename = file.getOriginalFilename();
        //新的文件名字
        String newFileName = UUID.randomUUID() + originalFilename;
        //封装上传文件位置的全路径
        file.transferTo(new File(filePath + newFileName));
        Path sourcePath = Paths.get(filePath + newFileName);
        Path destPath = Paths.get(filePath2 + newFileName);
        Files.copy(sourcePath, destPath); // 复制文件到另一个文件夹

        clerk.setCardphoto(newFileName);
        System.out.println("新文件名:"+newFileName);
        System.out.println(filePath+ newFileName + "      " + filePath2 + newFileName);
        return clerk.getCardphoto();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值