* 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
王存露 2020-09-14 13:14:59 +08:00 committed by GitHub
parent ac8b43a30e
commit 504e6e187e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 1 deletions

View File

@ -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);

View File

@ -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);
}

View File

@ -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"));
}
}