"Python创建的ZIP文件被浏览器误判为病毒"

2024-05-20 19:53:37 发布

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

我正在用pythonzipfile库创建一个ZIP文件。它包含4.txt文件,每个文件的内容只是一个字符串,其中包含一些报表数据。它还包含4.pdf文件,这些文件是用wkhtmtopdf转换为pdf的HTML模板创建的。然后,ZIP以二进制形式存储在PostgreSQL数据库中。然后提供给用户下载。我遇到的问题是,当下载启动时,大多数浏览器都将文件视为有害(病毒)。在

    zip_stream = io.BytesIO()
    with ZipFile(zip_stream, 'w') as myzip:
        myzip.writestr('file1.txt', report_data['file1_txt'])
        myzip.writestr('file2.txt', report_data['file2_txt'])
        myzip.writestr('file3.txt', report_data['file3_txt'])
        myzip.writestr('file4.txt', report_data['file4_txt'])
        myzip.writestr('file1.pdf', wkhtmltopdf.render_qweb_pdf(report_data['file1_html'])
        myzip.writestr('file2.pdf', wkhtmltopodf.render_qweb_pdf(report_data['file2_html'])
        myzip.writestr('file3.pdf', wkhtmltodpf.render_qweb_pdf(report_data['file3_html'])
        myzip.writestr('file4.pdf',wkhtmltopdf.render_qweb_pdf(report_data['file4_html'])

    values = {
        'name': 'report.zip',
        'type': 'binary',
        'mimetype': 'application/zip',
        'public': False,
        'db_datas': base64.b64encode(zip_stream.getvalue())
    }
    # Writing to database using custom ORM.
    attachment_id = self.env['ir.attachment'].create(values)
    # Creating download URL:
    download_url = '/web/content/' + str(attachment_id.id) + '?download=True'
    base_url = self.env['ir.config_parameter'].get_param('web.base.url')

Tags: 文件reporttxtdatapdfhtmlziprender