Improve download viewer with grouping and inline previews
Group downloads and scraps by type in Entry and Release details Add FileViewer component for .txt, .nfo, image, and PDF previews Update download API to support inline view with correct MIME types Signed-off-by: Junie@lucy.xalior.com
This commit is contained in:
@@ -40,11 +40,29 @@ export async function GET(req: NextRequest) {
|
||||
|
||||
const fileBuffer = fs.readFileSync(absolutePath);
|
||||
const fileName = path.basename(absolutePath);
|
||||
const ext = path.extname(fileName).toLowerCase();
|
||||
|
||||
// Determine Content-Type
|
||||
let contentType = "application/octet-stream";
|
||||
if (ext === ".txt" || ext === ".nfo") {
|
||||
contentType = "text/plain; charset=utf-8";
|
||||
} else if (ext === ".png") {
|
||||
contentType = "image/png";
|
||||
} else if (ext === ".jpg" || ext === ".jpeg") {
|
||||
contentType = "image/jpeg";
|
||||
} else if (ext === ".gif") {
|
||||
contentType = "image/gif";
|
||||
} else if (ext === ".pdf") {
|
||||
contentType = "application/pdf";
|
||||
}
|
||||
|
||||
const isView = searchParams.get("view") === "1";
|
||||
const disposition = isView ? "inline" : "attachment";
|
||||
|
||||
return new NextResponse(fileBuffer, {
|
||||
headers: {
|
||||
"Content-Type": "application/octet-stream",
|
||||
"Content-Disposition": `attachment; filename="${fileName}"`,
|
||||
"Content-Type": contentType,
|
||||
"Content-Disposition": `${disposition}; filename="${fileName}"`,
|
||||
"Content-Length": stat.size.toString(),
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user