
Zip File Compress & Download Pro is a cutting-edge plugin designed exclusively for Bubble, revolutionizing the way users handle file compression and downloads. This plugin empowers users to create and download Zip files effortlessly, eliminating the need for complex coding or technical expertise.
## Zip File Compress & Download Pro **Zip File Compress & Download Pro** is a cutting‑edge plugin built exclusively for Bubble. It lets you create ZIP archives and deliver them to end‑users without writing a single line of code. The plugin handles compression, progress reporting, optional encryption, and flexible download options, so you can focus on the user experience instead of the mechanics of file archiving. --- ## 📦 Key Features | Feature | Description | | ------- | ----------- | | **One‑action Zip Generation** | A single workflow action compresses any set of files (images, PDFs, text files, etc.) into a ZIP archive. No multi‑step scripting required. | | **Real‑time Progress Updates** | While the archive is being built, the plugin emits progress events (percentage and status) that you can display to users in a progress bar or toast. | | **Secure Encryption (optional)** | When a password is supplied, the resulting ZIP is AES‑encrypted, protecting its contents from unauthorized access. | | **Multiple Download Options** | After the ZIP is ready you can: <ul><li>Trigger a direct browser download.</li><li>Obtain a temporary public URL to share.</li><li>Save the file to a cloud storage service (e.g., Amazon S3, Google Cloud Storage) via a subsequent workflow step.</li></ul> | | **Intuitive Integration** | Drag‑and‑drop the “Zip Generator” element onto any page, configure a few fields, and start using the actions immediately—no custom code needed. | | **Comprehensive Documentation & Support** | Detailed reference tables, step‑by‑step tutorials, and responsive support are included to help you get the most out of the plugin. | | **Regular Updates & Enhancements** | The development team releases frequent updates that add stability improvements, performance tweaks, and compatibility fixes. | > **Take your Bubble app to new heights with Zip File Compress & Download Pro.** Empower your users to create and download ZIP files effortlessly, streamlining their file‑management tasks while keeping the experience fully no‑code. --- ## 🔧 Installation 1. Open your Bubble editor. 2. Go to the **Plugins** tab → **Add plugins**. 3. Search for **“Zip File Compress & Download Pro”** and click **Install**. 4. The plugin will appear under **Installed plugins**. No additional licensing steps are required for the free tier; premium plans unlock higher file‑size limits and advanced cloud‑storage integration. --- ## ⚙️ Configuration After installation, a **Zip Generator** element is added to your visual element palette. | Setting | Type | Required? | Description | | ------- | ---- | --------- | ----------- | | **Zip File Name** | Text | Yes | The name of the generated archive (e.g., `my_documents.zip`). | | **Password (optional)** | Text | No | If supplied, the ZIP will be AES‑encrypted with this password. | | **Maximum File Size** | Number (MB) | No | Upper bound for the total size of files to be zipped in a single run. Exceeds this limit → “File size limit exceeded” error. | | **Include Sub‑folders** | Yes / No | No (default = Yes) | When you pass a list of folders, determines whether files inside nested folders are added. | | **Temporary URL Expiration** | Number (minutes) | No (default = 15) | How long the public download link remains valid. | | **Progress Update Interval** | Number (ms) | No (default = 500) | Frequency at which progress events are emitted. Lower values give smoother UI updates at the cost of more workflow calls. | > **Tip:** Keep the password field empty if you do not need encryption; this avoids the extra CPU overhead of encrypting the archive. --- ## 🚀 Usage ### 1. Add the Zip Generator element - Drag **Zip Generator** from the visual element palette onto the page where you want the ZIP creation UI to live. - Set the **Zip File Name** and (optionally) **Password** in the element’s property inspector. ### 2. Prepare a list of files Create a list of **File** objects (Bubble’s native file type). Typical sources: - Files uploaded via an **Upload file** input. - Files stored in a database field (type = file). - URLs fetched from an external API (must be converted to Bubble **File** using the “Download file from URL” action first). ### 3. Create a workflow to generate the ZIP | Step | Action | Parameters | | ---- | ------ | ---------- | | **1** | **Element Actions → Zip Generator → Generate Zip** | • **Files to zip** – the list of File objects.<br>• **Callback URL** – (optional) a backend endpoint to be called when the ZIP is ready. | | **2** (optional) | **Element Actions → Zip Generator → On Progress Updated** | Use the event to set a custom state (e.g., `progress_percent`) and display a progress bar. | | **3** | **Element Actions → Zip Generator → On Zip Ready** | • **Download URL** – temporary link to the ZIP file.<br>• **File Object** – the generated ZIP as a Bubble File (can be saved to the database). | | **4** (optional) | **Data → Create a new thing** | Store the ZIP file in your database for later retrieval or audit. | | **5** | **Navigation → Open external website** | Use the **Download URL** to trigger a direct browser download (or open in a new tab). | ### 4. Example: Showing a progress bar ```markdown 🟢 **State**: Page → `zipProgress` (number, default = 0) 📋 **Workflow** 1. When button “Create ZIP” is clicked → Run **Generate Zip**. 2. Event **On Progress Updated** → Set state `zipProgress` to `Progress %`. 3. Event **On Zip Ready** → Set state `zipProgress` to 100 and display a “Download” button that uses the returned URL. ``` --- ## 📚 API Reference ### Actions | Action | Description | Required Inputs | Output | | ------ | ----------- | --------------- | ------ | | **Generate Zip** | Starts the compression of the supplied file list. | • `Files to zip` (list of File) <br>• `Password` (optional) | None (triggers progress & ready events) | | **Cancel Generation** | Aborts an ongoing compression job. | – | – | | **Get Last Generated Zip** | Retrieves the most recent ZIP file object and URL (useful for re‑using a ZIP without regenerating). | – | `File` (ZIP), `Download URL` | ### Events | Event | Payload | Typical Use | | ----- | ------- | ----------- | | **On Progress Updated** | `percentage` (0‑100), `statusMessage` (string) | Update UI progress bars, show toast notifications. | | **On Zip Ready** | `zipFile` (Bubble File), `downloadUrl` (string) | Store the ZIP, present a download link, or push to cloud storage. | | **On Error** | `errorCode` (string), `errorMessage` (string) | Display user‑friendly error alerts, log for debugging. | --- ## 🛠️ Troubleshooting | Symptom | Likely Cause | Fix | | ------- | ------------ | --- | | **“File size limit exceeded”** | Total size of files > **Maximum File Size** setting or Bubble’s 2 GB per file cap. | Reduce the number/size of files, increase the limit in the plugin settings (if on a paid plan), or split the operation into multiple ZIPs. | | **Progress bar never reaches 100 %** | The workflow is timing out (default 60 s) before compression finishes. | Increase the **Workflow timeout** in Settings → API → “Maximum workflow duration”, or enable the **Progress Update Interval** to a larger value to reduce calls. | | **Downloaded ZIP cannot be opened (corrupt)** | One or more source files are corrupted or not fully loaded before compression starts. | Ensure all source files are fully uploaded/available (use “File is ready?” check) before calling **Generate Zip**. | | **Encrypted ZIP prompts “invalid password”** | Password contains unsupported characters or is mismatched between generation and extraction. | Use only ASCII characters (A‑Z, a‑z, 0‑9) for passwords, and keep the same password when extracting. | | **Download URL returns 404** | The temporary URL has expired. | Increase **Temporary URL Expiration** or generate a fresh ZIP before the user clicks the link. | --- ## 📞 Support & Updates - **Documentation Portal** – All reference tables, tutorials, and sample workflows are available at the plugin’s **Docs** tab. - **Community Forum** – Post questions in the “Zip File Compress & Download Pro” section of the Bubble forum; the development team monitors it daily. - **Email Support** – For urgent issues, email support@zipcompresspro.com. Include the workflow ID and a screenshot of the error message. - **Release Notes** – View the changelog under the **Updates** tab of the plugin page. New features (e.g., larger file limits, additional cloud storage connectors) are added in line with the premium roadmap. --- ## 📦 Demo Explore a live demo of the plugin in action: **Demo Editor:** <https://plugins.datamaticsoftware.com/zip> --- *Ready to super‑charge your Bubble app with effortless ZIP creation? Install Zip File Compress & Download Pro today and let your users manage files with confidence.*
Plugin Overview
The Zip File Compress & Download Pro plugin lets you create ZIP archives on‑the‑fly and deliver them to your users without writing any server‑side code. It supports a single‑action ZIP generation, real‑time progress reporting, optional encryption, and flexible download options.
Tip: After installation, refresh the editor to ensure the new element appears in the element palette.
| Step | Action | Details |
|---|---|---|
| 1 | Drag the element | In the left‑hand element tree, locate (under the category) and drag it onto the page where you need the ZIP functionality. |
Documentation coming soon.
| 2 | Position & hide | The element does not need to be visible to users. You can place it anywhere on the page and set its visibility to “This element is not visible on page load” if you prefer a clean UI. |
| 3 | Set element ID (optional) | Give the element a unique ID (e.g., zip_generator) for easier reference in workflows or custom JavaScript. |
| Property | Description | Recommended Setting |
|---|---|---|
| File Encryption | Enables AES‑256 encryption of the archive. | Off unless you need protected downloads. |
| Auto‑download | If Yes, the ZIP is served immediately after creation. If No, the file is stored in your app’s file manager and you can handle it later (e.g., save to the database). | Yes for simple “download now” flows; No if you need to keep the file. |
| Default ZIP name | Base name for the generated archive (the plugin will append .zip). | my_archive (or any name you prefer). |
Below is a typical “one‑click download” workflow.
| Action | Where to find it | Parameters |
|---|---|---|
| Download Zip | Plugins → Zip File Compress & Download Pro → Download Zip (provided by the ZipElement) | 1. Zip file name – text field (e.g., Invoice_2024_Q1). <br>2. List of files – a list of File objects (can be Dynamic Data from a Repeating Group, a Search, or a custom list). <br>3. Auto‑download? – Yes / No (overrides the element setting). |
Example configuration
Zip file name: "Report_" + Current date/time :formatted as YYYYMMDD
List of files: Search for Files (type = File) filtered by …
Auto‑download?: Yes
If you set Auto‑download = No, the ZIP will be stored in your app’s file manager. To keep a reference in your data:
| Event | When it fires | Typical use |
|---|---|---|
| Zip File is Ready | After the ZIP archive has been created (whether auto‑download or stored). | Save the file to the database, send a notification, or update UI. |
| Zip Generation Failed (if available) | If the plugin encounters an error while compressing. | Show an error message to the user. |
| State | Type | Description |
|---|---|---|
| Zip file | File | The generated ZIP file (available after the Zip File is Ready event). |
| Progress | Number (0‑100) | Real‑time compression progress; useful for progress bars. |
| Is generating? | Yes/No | Indicates whether a ZIP operation is currently running. |
Example – Displaying progress
Element: Progress Bar
Data source: ZipElement's Progress
If you need the URL of the generated archive (e.g., to send in an email):
| Issue | Possible Cause | Fix |
|---|---|---|
| No download prompt appears | Auto‑download set to No and you didn’t handle the file later. | Either set Auto‑download to Yes, or add the “Zip File is Ready” event to save or trigger a manual download. |
| Progress stays at 0% | The list of files is empty or not a File type. | Verify the list you pass contains actual Bubble File objects. |
| “Zip Generation Failed” error | File size exceeds the plugin’s limit or an unsupported file type. | Reduce total size, split into multiple archives, or ensure files are valid (e.g., images, PDFs). |
| Encrypted ZIP cannot be opened | Wrong encryption password (if you enabled encryption). | Ensure you set the same password when creating the ZIP and when users attempt to open it. |
| File not saved to database | You omitted the “Zip File is Ready” event or used the wrong state. | Add the event and set the DB field to ZipElement's Zip file. |
Q: Can I compress more than 100 files at once?
A: Yes. The plugin streams files, but extremely large archives may take longer and could hit Bubble’s file size limits (≈ 2 GB). Consider splitting large batches.
Q: Is the ZIP created on the client or the server?
A: The compression runs on Bubble’s server infrastructure, so the user's device only receives the final archive.
Q: Do I need to enable any API keys?
A: No external services are required; the plugin works out‑of‑the‑box.
Q: How do I change the encryption algorithm?
A: The plugin currently offers only AES‑256 (enabled via the File Encryption toggle). Future updates may add more options.
End of Setup Instructions.