diff --git a/backend/internal/api/libraries.go b/backend/internal/api/libraries.go
index 78e20cc..cd13683 100644
--- a/backend/internal/api/libraries.go
+++ b/backend/internal/api/libraries.go
@@ -26,6 +26,10 @@ func (a *api) libRoot(c *gin.Context, lib store.Library) (string, bool) {
err(c, http.StatusForbidden, "forbidden", "library root outside books dir")
return "", false
}
+ if e := os.MkdirAll(root, 0o755); e != nil { // 注册库时目录可能尚未落盘,自愈
+ err(c, http.StatusInternalServerError, "internal", "library root")
+ return "", false
+ }
return root, true
}
diff --git a/web/src/pages/admin/Libraries.tsx b/web/src/pages/admin/Libraries.tsx
index 712168a..0b2cb8f 100644
--- a/web/src/pages/admin/Libraries.tsx
+++ b/web/src/pages/admin/Libraries.tsx
@@ -83,7 +83,7 @@ export default function AdminLibraries() {
}}
type="file"
multiple
- accept=".cbz,.pdf,.epub,.txt,.md"
+ accept=".cbz,.zip,.pdf,.epub,.txt,.md"
className="hidden"
onChange={(e) => {
void onFiles(l.id, e.target.files);
@@ -93,7 +93,7 @@ export default function AdminLibraries() {
- 白名单:cbz/pdf/epub/txt/md
+ 白名单:cbz/zip/pdf/epub/txt/md
))}