diff --git a/src/main/java/run/halo/app/controller/admin/api/BackupController.java b/src/main/java/run/halo/app/controller/admin/api/BackupController.java index c6221854a..9f3338539 100644 --- a/src/main/java/run/halo/app/controller/admin/api/BackupController.java +++ b/src/main/java/run/halo/app/controller/admin/api/BackupController.java @@ -141,7 +141,9 @@ public class BackupController { backupService.deleteWorkDirBackup(filename); } - @PostMapping("markdown/import") + @PostMapping(value = "markdown/import", consumes = { + MediaType.TEXT_PLAIN_VALUE, + MediaType.TEXT_MARKDOWN_VALUE}) @ApiOperation("Imports markdown") public BasePostDetailDTO backupMarkdowns(@RequestPart("file") MultipartFile file) throws IOException { diff --git a/src/main/java/run/halo/app/service/impl/BackupServiceImpl.java b/src/main/java/run/halo/app/service/impl/BackupServiceImpl.java index 79ba23ce8..ed9a861ee 100644 --- a/src/main/java/run/halo/app/service/impl/BackupServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/BackupServiceImpl.java @@ -230,12 +230,16 @@ public class BackupServiceImpl implements BackupService { @Override public BasePostDetailDTO importMarkdown(MultipartFile file) throws IOException { + try { + // Read markdown content. + String markdown = FileUtils.readString(file.getInputStream()); + // TODO sheet import + return postService.importMarkdown(markdown, file.getOriginalFilename()); + } catch (OutOfMemoryError error) { + throw new ServiceException( + "文件内容过大,无法导入。", error); + } - // Read markdown content. - String markdown = FileUtils.readString(file.getInputStream()); - - // TODO sheet import - return postService.importMarkdown(markdown, file.getOriginalFilename()); } @Override