Tlias 项目文件上传

Tlias 项目文件上传

前端

  • enctype 如果是默认值, 仅仅提交文件名

  • 文本 第三项是可读的, 其他的是二进制,乱码;

接受

  • 普通表单 , post 形参接受
  • 文件类型

存储

本地存储

@Slf4j  
@RestController  
public class UploadController {  
    @PostMapping("/upload")  
    public Result upload( String name, Integer  age, MultipartFile image) throws IOException {  
        log.info("upload image{},{},{}", name, age, image);  
        // 获取文件名  
        String originalFilename = image.getOriginalFilename();  
        int index = originalFilename.lastIndexOf(".");  
        String suffix = originalFilename.substring(index);  
        String newFileName = UUID.randomUUID().toString() + suffix;  
        File file = new File("D:\\BaiduNetdiskDownload\\java\\"+newFileName);  
        image.transferTo(file);  

        return Result.success();  
    }  
}
#单个文件大小  
spring.servlet.multipart.max-file-size=10MB  
#单次请求(一个请求可以上传多个文件)  
spring.servlet.multipart.max-request-size=100MB

示例

org.hzl.utils.ImageSaver 类, 标记 Component 使用容器接收

@Slf4j  
@Component  
public class ImageSaver {  
    public String  save(MultipartFile image) throws IOException {  
        log.info("upload image{}", image);  
        // 获取文件名  
        String originalFilename = image.getOriginalFilename();  
        int index = originalFilename.lastIndexOf(".");  
        String suffix = originalFilename.substring(index);  
        String newFileName = UUID.randomUUID().toString() + suffix;  
        File file = new File("D:\\BaiduNetdiskDownload\\java\\" + newFileName);  
        image.transferTo(file);  
        return file.getAbsolutePath();  
    }  
}

org.hzl.controller.UploadController


@Slf4j  
@RestController  
public class UploadController {  

    @Autowired  
    private ImageSaver imageSaver;  
    @PostMapping("/upload")  
    public Result upload( String name, Integer  age, MultipartFile image) throws IOException {  
        String url = imageSaver.save(image);  
        return Result.success(url);  
    }  
}

云存储