response.stream zipfile文件夹未识别为.zip

2024-06-16 11:49:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在调整web2py中的照片库应用程序。 其中的一部分是允许用户下载整个相册-我编写了一个自定义下载功能,它检索用户选择的相册的所有图像,并将它们放入zip文件夹,然后用户可以下载该文件夹。我可以看到,当用户下载相册时,zip文件夹正在服务器端生成

但是,在下载zip文件夹时,用户只需检索缺少.zip扩展名的文件。在用户可以访问下载的“文件”内容之前,他们需要手动将文件从“file”重命名为“file.zip”。 我怎样才能解决这个问题

这是我在web2py中的控制器:

def download_album():
    import zipfile
    import os
    albumtitle = request.args(1)
    images = db(db.image.album==request.args(0)).select(orderby=~db.image.created_on)
    os.chdir('/home/xyz/web2py/applications/albums/static/albumdownload')
    titleofalbum = str(albumtitle)+'.zip'
    zipimage = zipfile.ZipFile(albumtitle + '.zip', 'w')
    for image in images:
        (filename, fullname) = db.image.file.retrieve(image.file, nameonly=True)
        zipimage.write(fullname, str(filename))
    zipimage.close()
    return response.stream(os.path.join('/home/xyz/web2py/applications/albums/static/albumdownload/', titleofalbum), attachment=True)

更新-问题仅限于Firefox;通过谷歌浏览器下载也可以


Tags: 文件用户imageimport文件夹dbalbumos