在我的项目中,我想下载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�"��T6���Λb��"/ ���k�vo$%��x/y���Q�����n�����Y�
为什么下载文件对话框无法显示?我的linux服务器,浏览器和数据库使用utf8设置。谁能帮我 ?我尝试过其他文件格式,例如:jpeg,png,它们都是直接打开内容而不是下载文件对话框。
答案 0 :(得分:0)
在任何其他输出之前输入您的代码...在我的情况下,我创建了一个单独的页面。(download.php?file = file_id_goes_here)然后从files.php调用该文件。所以在我下载之前没有其他输出...