上传本地图片单元测试报错(测试 fastDFSClient.uploadFile2 方法, 以及uploadFile 方法)

来源:7-19 后端上传图片功能开发

黑车轴

2019-08-27

上传本地图片单元测试报错

图片上传服务器已经搭建成功, 并通过测试

单元测试

报错

进行 DEBUG 断点 :
第一步将本地的图片转为MultipartFile

第一步将本地的图片转为MultipartFile

第二步, file.getOriginalFilename() 有值 : png . 为前面的方法写死

第二步, file.getOriginalFilename() 有值 : png . 为前面的方法写死

第三步, 此时fileExtName 已经为"" , 原因 FilenameUtils.getExtension(file.getOriginalFilename()) 返回 ""

第三步, 此时fileExtName 已经为"" , 原因 FilenameUtils.getExtension(file.getOriginalFilename()) 返回 “”

第四步, 报错

第四步, 报错

写回答

2回答

风间影月

2019-08-27

请到在web环境下去调试吧,毕竟上传不同于普通业务

1
1
黑车轴
原来要用网络环境 , 非常感谢!
2019-08-27
共1条回复

慕斯6088333

2019-10-03

可以debug到apache.common中FilenameUtils.getExtension的源码

public static String getExtension(String filename) {
    if (filename == null) {
        return null;
    }
    int index = indexOfExtension(filename);
    if (index == -1) {
        return "";
    } else {
        return filename.substring(index + 1);
    }
}

再到indexOfExtension函数

public static int indexOfExtension(String filename) {
   if (filename == null) {
       return -1;
   }
   int extensionPos = filename.lastIndexOf(EXTENSION_SEPARATOR);
   int lastSeparator = indexOfLastSeparator(filename);
   return (lastSeparator > extensionPos ? -1 : extensionPos);
}

其中EXTENSION_SEPARATOR  为 点号。

/**
 * The extension separator character.
 */
private static final char EXTENSION_SEPARATOR = '.';

所以originalFileName应该改成 “xxxx.png”, 单独的  “png”会报错

0
0

Netty+Spring Boot仿微信-全栈开发高性能后台及客户端

SpringBoot/Netty+MUI全栈开发 同时搞定后台+ Android&iOS

1498 学习 · 684 问题

查看课程