Mục lục
Tại sao Batch Upload?
- Tiết kiệm giờ công: 1 file ZIP = nhiều chương, log tiến trình rõ ràng.
- Không “rác” Media Library: ảnh được copy thẳng vào
uploads/init-manga/<manga_id>/<chapter>/, không tạo kích thước phụ. - An toàn: chặn zip-slip, bỏ symlink, lọc rác hệ thống; dọn dẹp bằng realpath guard (chỉ xóa trong sandbox tạm).
- Admin-only: chỉ Quản trị viên mới sử dụng được, tránh lạm dụng.
Cách hoạt động (tóm tắt)

- 1 ZIP chứa trực tiếp các thư mục chương: mỗi thư mục = 1 chương.
- Giải nén an toàn vào sandbox tạm:
uploads/init-manga-batch/<manga_id>/zip_…/. - Sao chép ảnh của từng chương thẳng vào thư mục đích:
uploads/init-manga/<manga_id>/<chapter_number>/0001.png,0002.png… - Tạo nội dung chương từ các URL ảnh, sau đó xóa sạch sandbox + file ZIP tạm.
Quy tắc tên thư mục chương
- Hợp lệ:
12hoặc12.5 - Title(số nguyên/decimal, có thể kèm tiêu đề sau-). - Cấm ký tự đặc biệt:
\ / : * ? " < > |(đặc biệt:bị cấm). - Ví dụ cấu trúc ZIP:
1/(images…)2 - Chapter title/(images…)12.5 - Extra/(images…)
An toàn & chống phá hoại
- Chặn zip-slip: loại bỏ đường dẫn tuyệt đối,
../, byte NUL; guard đường dẫn cha bằngrealpath()+ dấu phân tách. - Bỏ symlink: kiểm tra external attributes, không giải nén liên kết biểu tượng.
- Lọc rác: loại
__MACOSX,.DS_Store,Thumbs.db, file ẩn. - Chống zip-bomb: giới hạn tối đa ~20k file và ~5GB dung lượng giải nén.
- Dọn dẹp an toàn: chỉ xóa trong sandbox tạm; file ZIP tạm cũng bị xóa sau khi hoàn tất.
Hướng dẫn 3 bước
- Vào trang chỉnh sửa Manga (đã Publish), mở metabox Batch Upload Chapters.
- Chọn 1 tệp
.zipchứa các thư mục chương hợp lệ → nhấn Start Batch Upload. - Theo dõi log: chương nào OK sẽ hiển thị số lượng ảnh; xong việc là có thể đọc ngay.
Các lưu ý thực tế
- Ảnh hỗ trợ:
jpg,jpeg,png,gif,webp,avif. - Slug trùng: nếu chương cùng số đã tồn tại, hệ thống sẽ bỏ qua để tránh ghi đè.
- Hiệu năng: copy file trực tiếp (không resize), sắp xếp tên tự nhiên; log gọn, không truy vấn nặng.
Câu hỏi nhanh
- Ảnh có vào Media Library không? Không. Ảnh được copy thẳng vào thư mục chương, không tạo thumbnail rác.
- Có xóa nhầm ra ngoài thư mục tạm? Không. Dọn dẹp dùng realpath guard chỉ trong sandbox, không thể “bay” ra ngoài.
- Người dùng thường có thấy metabox này không? Không. Tính năng chỉ dành cho Administrator.
Kết luận
Với Batch Upload, bạn biến thao tác upload nhiều chương từ “cực hình” thành “1 lần bấm”. Sạch, nhanh, an toàn — và hoàn toàn kiểm soát. Từ bản 1.5.3, đây là cách chuẩn để đẩy chương truyện hàng loạt trên Init Manga.
Bình luận