1.2.0 • Published 1 year ago

multer-zip v1.2.0

Weekly downloads
21
License
ISC
Repository
github
Last release
1 year ago

multer-zip

Promise based multer file upload zipping utility

Example

const path = require("path");

const express = require("express");
const zipper = require("multer-zip").default;
const multer = require("multer");
const upload = multer(/* ... multer opts ... */);
const app = express();

// ... app definitions

app.post("/", upload.array("documents", 5), (req, res) => {
	const { files } = req;
	const dest = path.join(__dirname, "uploads");
	const zipname = `files_${Math.random()}.zip`;
	const filenamer = ({ originalname }) => `${new Date().getTime()}_${originalname}`;
	zipper({ files, dest, zipname, filenamer })
		.then(() => {
			console.log("successfully zipped files");
		})
		.catch(error => {
			console.log(error);
		});

	res.send("zipping...");
});

app.post("/streamable", upload.array("documents", 5), (req, res) => {
	const { files } = req;
	const filenamer = ({ originalname }) => `${new Date().getTime()}_${originalname}`;
	zipper({ files, dest: res, filenamer })
		.then(() => {
			console.log("successfully zipped files");
		})
		.catch(error => {
			console.log(error);
		});
});

const PORT = process.env.PORT || 3000;
app.listen(PORT => console.log(`listening on port ${PORT}`));

Options

KeyDescriptionNote
filesMulter files array*Must contain buffers
destDestination of zipped files or stream.Writable
zipnameName of zipped files
filenamerOptional function to change name of file