为什么下载文件对话框在php下载zip文件时不能出现

问题描述 投票:0回答:1

在我的项目中,我想下载xxx.zip文件。

我检查了我的apache服务器文件:

/usr/local/apache2/conf/httpd.conf

此文件的MIME只有两个AddType:

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

这两种类型不能支持zip,所以打击它我添加了:

AddType application/zip .zip

然后,我成功重启了httpd服务:

service httpd restart

我运行php下载:

<?php 
$file_name="xxx.zip"; 
header("Cache-Control: no-cache, must-revalidate");
header("Expires: 0");
header("Content-Disposition: attachment; filename=".basename($file_name));
header("Content-Length:".filesize($file_name));
header("Content-Type:application/zip");
readfile($file_name);
exit;
?>

但不幸的是,我直接打开xxx.zip的内容,并且在我的网站上有乱码而不是下载对话框:

 @ӓ�����'t��    :�>]x�I�1W`� ���:�V2g�z����m^ ��Ӄ&8�E���l�:�kؖb��uƘ�z���qD���w�4��p��^&���s�����i/ݽ�mUH�F�x[`�:��#Nr��+|�n�i����ό�U#�}=!j�D�4�}=�'ujc�`��}hl�cr�"��T񼪚6���Λb��"/  ���k�vo$%��x/y���Q�����n�����Y�

为什么下载文件对话框无法显示?我的linux服务器,浏览器和数据库使用utf8设置。谁能帮我 ?我尝试过其他文件格式,例如:jpeg,png,它们都是直接打开内容而不是下载文件对话框。

php apache
1个回答
0
投票

在任何其他输出之前输入您的代码...在我的情况下,我创建了一个单独的页面。(download.php?file = file_id_goes_here)然后从files.php调用该文件。所以在我下载之前没有其他输出...

© www.soinside.com 2019 - 2024. All rights reserved.