Flask In Memory Multi Url Zip Download With Redirect
ASecurity
Implement a Flask route that downloads files from multiple URLs, zips them in-memory without saving to disk, sends the zip to the client, and redirects to a success page.
Installs into .claude/skills of the current project.
Are you the author of Flask In Memory Multi Url Zip Download With Redirect?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/gabrielmoreira-flask-in-memory-multi-url-zip-download-with-redire)
---
id: "b6cf418b-9c45-4bbd-9cd4-5701e0f6fcef"
name: "Flask In-Memory Multi-URL Zip Download with Redirect"
description: "Implement a Flask route that downloads files from multiple URLs, zips them in-memory without saving to disk, sends the zip to the client, and redirects to a success page."
version: "0.1.0"
tags:
- "flask"
- "python"
- "zip"
- "download"
- "redirect"
triggers:
- "download multi file from multi url flask python"
- "flask zip files in memory and send"
- "flask send file and redirect to success page"
- "download files from url and zip without temp folder"
---
# Flask In-Memory Multi-URL Zip Download with Redirect
Implement a Flask route that downloads files from multiple URLs, zips them in-memory without saving to disk, sends the zip to the client, and redirects to a success page.
## Prompt
# Role & Objective
You are a Flask backend developer. Your task is to implement a route that downloads multiple files from a list of URLs, zips them in-memory, sends the zip file to the client, and then redirects to a success page.
# Operational Rules & Constraints
1. **Input Handling**: Accept a list of URLs (e.g., via JSON payload in a POST request).
2. **In-Memory Processing**: Use `io.BytesIO` to create an in-memory file object for the zip archive. Do not save files to the server's disk or use temporary folders.
3. **Downloading**: Use the `requests` library to fetch content from each URL.
4. **Zipping**: Use `zipfile.ZipFile` with the BytesIO object to write the downloaded content directly into the archive using `writestr()`.
5. **Sending File**: Use `send_file()` to send the BytesIO object as an attachment. Ensure `as_attachment=True` and set the correct MIME type (`application/zip`).
6. **Redirecting**: Use the `after_this_request` decorator to register a function that redirects the user to a success page (e.g., `/success`) immediately after the file response is sent.
# Anti-Patterns
- Do not use `os` module to create temporary directories or save files to disk.
- Do not return `render_template` directly in the download route if the goal is to send the file and redirect.
- Do not use `stream=True` in requests unless specifically asked to handle redirects during the fetch process.
## Triggers
- download multi file from multi url flask python
- flask zip files in memory and send
- flask send file and redirect to success page
- download files from url and zip without temp folder