文件上传

  1. ProductController.java
package com.wd.controller;

import com.wd.constant.UploadPrefix;
import org.apache.commons.io.FilenameUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

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

@RestController
public class ProductController {

    @Value("${upload.dir}")//注入路径
    private String realPath;
    private static final Logger log = LoggerFactory.getLogger(ProductController.class);

    @PostMapping("upload")
    public String uploadImage(MultipartFile file) throws IOException {
        System.out.println("file " + file.getOriginalFilename());
        log.info("file:{}", file.getOriginalFilename());

        // 创建日期目录
        String dateString = LocalDate.now().toString();
        File dateDir = new File(realPath, dateString);
        if (!dateDir.exists()) dateDir.mkdirs();//如果目录不存在,创建一个目录
        // 上传文件名称  对于文件上传的名称进行修改 使其不会重复
        String extension = FilenameUtils.getExtension(file.getOriginalFilename()); //获取文件的后缀名
        String newFileName = UUID.randomUUID().toString().replace("-", "") + "." + extension;

        // 处理文件上传
        file.transferTo(new File(dateDir, newFileName));

        // 返回图片的完成路径 http://localhost:9998/admin/2021-08-22/f48ac538-3e81-4203-924a-1e3d345497c8.jpg
        return UploadPrefix.IMAGE_URL + dateString + "/" + newFileName;
    }

}

  2.UploadPrefix.java

package com.wd.constant;

public interface UploadPrefix {

    String IMAGE_URL = "http://localhost:9998/admin/";
}

 

posted @ 2023-04-12 16:30  尔尔er  阅读(19)  评论(0编辑  收藏  举报