Php 下载时缺少.zip扩展名

Php 下载时缺少.zip扩展名,php,file,download,Php,File,Download,我有一个网站,允许客户下载他们购买的文件 将向客户发送一个链接,该链接将引导他们进入一个页面,该页面将检查该链接是否有效,如果有效,则允许他们下载其产品 以下是链接示例: 很多客户都说,当他们下载时,.zip扩展名丢失了,我找不到问题所在,它在我的机器上运行良好,除非我使用“另存为”,但即使这样,有些人也有问题 有没有办法让他们下载文件,即使按“另存为”也保留.zip扩展名 这是我用来将它们重定向到下载的代码 header("Cache-Control: public"); header("Co

我有一个网站,允许客户下载他们购买的文件

将向客户发送一个链接,该链接将引导他们进入一个页面,该页面将检查该链接是否有效,如果有效,则允许他们下载其产品

以下是链接示例:

很多客户都说,当他们下载时,.zip扩展名丢失了,我找不到问题所在,它在我的机器上运行良好,除非我使用“另存为”,但即使这样,有些人也有问题

有没有办法让他们下载文件,即使按“另存为”也保留.zip扩展名

这是我用来将它们重定向到下载的代码

header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$originalfilename");
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");

感谢您的帮助。

添加一个看起来像文件名的伪GET参数

...&fname=/foo.zip

添加一个看起来像文件名的伪GET参数

...&fname=/foo.zip

问题可能是某些文件有空格,在这种情况下,您当前的代码只使用第一部分,因此失去了扩展部分,为了防止出现这种错误,您必须将文件名用双引号括起来,如下所示:

header('Content-Disposition: attachment; filename="'.$originalfilename.'"');

问题可能是某些文件有空格,在这种情况下,您当前的代码只使用第一部分,因此失去了扩展部分,为了防止出现这种错误,您必须将文件名用双引号括起来,如下所示:

header('Content-Disposition: attachment; filename="'.$originalfilename.'"');

我敢打赌,这与文件名中有空格有关,因为文件头中的文件名是
PSP\u Tubes\u PSP\u Tubes\u Lisa\u Cree\u礼物
,文件想另存为
PSP\u Tubes\u PSP\u Tubes\u Lisa\u Cree\u
,我敢打赌这与文件中有空格有关标题中的文件名是
PSP\u Tubes\u PSP\u Tubes\u Lisa\u Cree\u the Gift\u 6932.zip
,文件要另存为
PSP\u Tubes\u Lisa\u Cree\u the
var\u dump($originalfilename)的内容外观?您能检查原始文件名是否有扩展名吗?他们使用的是internet explorer吗?这种特殊的网络浏览器有这样做的讨厌习惯。以及其他一些令人讨厌的习惯。谢谢你的回复!是的,原始文件名有扩展名,我已经检查过了。。。Firefox似乎也在这样做,
var_转储什么($originalfilename)外观?您能检查原始文件名是否有扩展名吗?他们使用的是internet explorer吗?这种特殊的网络浏览器有这样做的讨厌习惯。以及其他一些令人讨厌的习惯。谢谢你的回复!是的,原始文件名有扩展名,我已经检查过了。。。Firefox似乎也在这么做……谢谢!我没有想到它是空间,它似乎正在为他们中的一些人工作。。。我仍然有一个使用IE的用户存在同样的问题,尽管.zip扩展名被删除了。非常感谢您抽出时间。谢谢!我没有想到它是空间,它似乎正在为他们中的一些人工作。。。我仍然有一个使用IE的用户存在同样的问题,尽管.zip扩展名被删除了。非常感谢你抽出时间。