Spring Boot文件上传测试

首先,当然是要先搓一个文件上传接口,对应的controller:

    @ApiOperation(value = "上传文件")
    @PostMapping("/file/upload")
    public ResponseVO<File> uploadFile(@ApiParam(name = "file", value = "待上传文件", required = true)
                                       @RequestPart(name = "file") MultipartFile multipartFile) {
        File file = fileService.uploadFile(multipartFile);
        return new ResponseVO<>(ResponseEnum.SUCCESS, file);
    }

对应的service:

    @Override 
    public File uploadFile(MultipartFile multipartFile) {
        // 上传文件
        String storePath = FastDFSUtil.uploadFile(multipartFile);
        log.info("上传文件地址:{}", FastDFSUtil.getWebServerUrl() + storePath);
        File file = FileAssembly.toDomain(storePath, multipartFile);
        // 上传原文件
        file.setCompression(false);
        // 实例化到数据库
        return fileRepository.save(file);
    }

接口搓好后,再搓个测试类

    @Test
    public void uploadFile() throws Exception {
        String filePath = this.getClass().getResource("/picture.jpg").getPath();
        File file = new File(filePath);
        MockMultipartFile mockMultipartFile = new MockMultipartFile(
                "file", //文件名
                file.getName(), //originalName 相当于上传文件在客户机上的文件名
                MediaType.IMAGE_JPEG_VALUE, //文件类型
                new FileInputStream(file) //文件流
        );
        ResultActions resultActions = this.mockMvc.perform(multipart("/file/upload")
                .file(mockMultipartFile));
        resultActions.andExpect(status().isOk())
                .andReturn().getResponse()
                .setCharacterEncoding(StandardCharsets.UTF_8.name());
        resultActions.andDo(print());
    }

下面运行测试类,获取返回结果

返回成功则说明大功告成了,最后文件访问效果如下:

 

发布了6 篇原创文章 · 获赞 3 · 访问量 243
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览