mirror of https://github.com/halo-dev/halo
fix: #897 && fix: halo-dev/halo-admin#236 (#1057)
* fix: #897 * fix: 网站备份时,上级目录不存在的问题 (#1056) * 增加网站备份,临时文件不存在时创建 * 增加数据导出,临时文件不存在时创建 * 修改整站备份,数据导出,临时文件不存在时创建 * add: file upload unit test * change : FileHandlersTest.java file format * feat: #1065 (#1066) * feat: #1065 * feat: #1065 * fix: #897 * add: file upload unit test * change : FileHandlersTest.java file format * fix: https://github.com/halo-dev/halo-admin/issues/236 * delete : FileHandlersTest.java change : FilenameUtilsTest.java add file name double suffix test Co-authored-by: bruin-sxk <45200590+bruin-sxk@users.noreply.github.com> Co-authored-by: Ryan Wang <i@ryanc.cc>pull/1072/head
parent
ac8b43a30e
commit
504e6e187e
|
@ -83,7 +83,7 @@ public class CommonController extends AbstractErrorController {
|
|||
model.addAttribute("error", errorDetail);
|
||||
model.addAttribute("meta_keywords", optionService.getSeoKeywords());
|
||||
model.addAttribute("meta_description", optionService.getSeoDescription());
|
||||
|
||||
model.addAttribute("message", HttpStatus.valueOf(optionService.getSeoKeywords()).value());
|
||||
log.debug("Error detail: [{}]", errorDetail);
|
||||
|
||||
HttpStatus status = getStatus(request);
|
||||
|
|
|
@ -5,6 +5,8 @@ import org.springframework.lang.NonNull;
|
|||
import org.springframework.util.Assert;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Filename utilities.
|
||||
|
@ -44,6 +46,14 @@ public class FilenameUtils {
|
|||
// Find last dot
|
||||
int dotLastIndex = StringUtils.lastIndexOf(filename, '.');
|
||||
|
||||
String[] split = filename.split("\\.");
|
||||
|
||||
List<String> extList = Arrays.asList("gz", "bz2");
|
||||
|
||||
if (extList.contains(split[split.length - 1]) && split.length >= 3) {
|
||||
return filename.substring(0, filename.substring(0, dotLastIndex).lastIndexOf('.'));
|
||||
}
|
||||
|
||||
if (dotLastIndex < 0) {
|
||||
return filename;
|
||||
}
|
||||
|
@ -84,6 +94,14 @@ public class FilenameUtils {
|
|||
return StringUtils.EMPTY;
|
||||
}
|
||||
|
||||
String[] split = filename.split("\\.");
|
||||
|
||||
List<String> extList = Arrays.asList("gz", "bz2");
|
||||
|
||||
if (extList.contains(split[split.length - 1]) && split.length >= 3) {
|
||||
return filename.substring(filename.substring(0, dotLastIndex).lastIndexOf('.') + 1);
|
||||
}
|
||||
|
||||
return filename.substring(dotLastIndex + 1);
|
||||
}
|
||||
|
||||
|
|
|
@ -16,18 +16,24 @@ class FilenameUtilsTest {
|
|||
// a.txt --> a.txt
|
||||
// a/b/c --> c
|
||||
// a/b/c/ --> ""
|
||||
// he/ll/o.tar.gz --> "o"
|
||||
// h/i.tar.bz2 --> "i"
|
||||
@Test
|
||||
void getBasename() {
|
||||
assertEquals("c", FilenameUtils.getBasename("a/b/c.txt"));
|
||||
assertEquals("a", FilenameUtils.getBasename("a.txt"));
|
||||
assertEquals("c", FilenameUtils.getBasename("a/b/c"));
|
||||
assertEquals("", FilenameUtils.getBasename("a/b/c/"));
|
||||
assertEquals("o", FilenameUtils.getBasename("he/ll/o.tar.gz"));
|
||||
assertEquals("i", FilenameUtils.getBasename("h/i.tar.bz2"));
|
||||
}
|
||||
|
||||
// foo.txt --> "txt"
|
||||
// a/b/c.jpg --> "jpg"
|
||||
// a/b.txt/c --> ""
|
||||
// a/b/c --> ""
|
||||
// he/ll/o.tar.gz --> "tar.gz"
|
||||
// he/ll/o.tar.bz2 --> "tar.bz2"
|
||||
@Test
|
||||
void getExtension() {
|
||||
assertEquals("txt", FilenameUtils.getExtension("foo.txt"));
|
||||
|
@ -35,5 +41,7 @@ class FilenameUtilsTest {
|
|||
assertEquals("", FilenameUtils.getExtension("a/b.txt/c"));
|
||||
assertEquals("", FilenameUtils.getExtension("a/b/c"));
|
||||
assertEquals("", FilenameUtils.getExtension("a/b/c/"));
|
||||
assertEquals("tar.gz", FilenameUtils.getExtension("he/ll/o.tar.gz"));
|
||||
assertEquals("tar.bz2", FilenameUtils.getExtension("he/ll/o.tar.bz2"));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue