Make a ZIP Without Uploading Files
Choose the files together, leave Balanced compression selected, and save the resulting ZIP. A worker writes local headers, DEFLATE-compressed data, CRC-32 checksums and the central directory in this tab; the browser test fails if using the tool sends any source file request away from the site.
Up to 200 non-empty files, 50 MB each and 250 MB altogether. Their bytes stay in this tab.
The archive is assembled from the File objects already held by this tab, with no upload or remote conversion step.
Every entry gets a flat, path-safe name and duplicate filenames are numbered instead of overwriting one another.
The result is an ordinary ZIP using stored entries or method 8 DEFLATE, so common desktop and mobile archive tools can open it.
How it works
How it is done
- Check that the selection contains 1 to 200 non-empty files, no file is larger than 50 MB, and their combined size is no more than 250 MB.
- Reduce every selected name to a flat basename, remove path separators and unsafe control characters, protect reserved Windows names, cap the UTF-8 name length, and number collisions without regard to letter case.
- Start one ZIP entry per file. Store mode copies the bytes with ZIP method 0; Fast, Balanced and Smallest use method 8 DEFLATE at levels 1, 6 and 9 respectively.
- Feed each source into the ZIP writer in 512 KB pieces. The writer calculates CRC-32, emits the entry records and reports progress while the worker yields between pieces so Cancel remains effective.
- Give every entry the fixed ZIP date 1 January 1980 and portable read/write attributes, then finish the central directory and offer the completed bytes as the requested .zip download.
What it assumes
- Selected files become flat entries at the root of the archive. Folder structure, source paths, comments and source modification times are intentionally not copied.
- Store mode preserves every source byte but does not promise that the ZIP itself will be smaller. ZIP headers, filenames, checksums and its central directory add overhead.
- Fast, Balanced and Smallest are three effort levels for the same standard DEFLATE method. A higher level can take longer without producing a meaningfully smaller archive, especially on JPEG, MP4, PDF, ZIP and other already-compressed formats.
- CRC-32 catches accidental corruption when an entry is extracted. It is not a cryptographic signature, authentication mechanism or defence against deliberate modification.
- This tool does not encrypt entries or add a password. The resulting archive is an ordinary unencrypted ZIP whose filenames and contents are available to anybody who has the file.
- Source bytes and the growing archive are held in the browser worker, which is why the per-file, combined-input and output limits are explicit.
Common questions
Can a browser really create one ZIP from many local files?
Yes. The file picker gives this tab access to the selected bytes, and a worker can calculate each CRC-32, compress the data and write the ZIP records locally before the browser offers the finished Blob for download.
What happens when two chosen files have the same name?
The first keeps its safe basename and later collisions receive numbered suffixes such as report (2).pdf. Comparisons ignore letter case so the archive behaves predictably when extracted on a case-insensitive filesystem.
Sources
The full method, worked example and every assumption behind this figure are on ZIP File Creator.