gpt4 book ai didi

python - 从内存中的 url 下载图像并在内存中创建 zip 存档以发送到浏览器

转载 作者:太空宇宙 更新时间:2023-11-04 01:35:32 33 4
gpt4 key购买 nike

在我的 django 项目中,我需要将一个 zip 文件发送到客户端以供下载。此 zip 文件将包含从各种 url 下载的图像。

是否可以在不将图像文件写入磁盘的情况下将图像下载到内存中,然后将它们添加到内存中的 zip 文件中,再次不将 zip 文件写入磁盘,最后将 zip 文件发送到客户端以供下载?

我知道 urllib2 可用于图像下载,而 zipfile 可用于处理 zip 文件,但在内存本身中执行这些操作时会遇到问题。因此,我们将不胜感激。

谢谢

最佳答案

使用 urllib2 下载文件。打开一个新的 ZipFile 进行写入(为此您需要一个 StringIO 对象)。将 url 的输出写入 ZilpFile.writestr。将 zip 文件附加到 Django 响应。

import urllib2
from StringIO import StringIO

url = urllib2.urlopen('http://example.com/foo.jpg')
f = StringIO()
zip = zipfile.ZipFile(f, 'w')
zip.writestr('foo.jpg', url.read())
response = HttpResponse(f.getvalue(), content_type="application/zip")
response['Content-Disposition'] = 'attachment; filename=foobar.zip'
return response

关于python - 从内存中的 url 下载图像并在内存中创建 zip 存档以发送到浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10235662/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com