0

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

一个链接被发送给客户,该链接将他们引导到一个页面,该页面检查链接是否有效,如果有效,则允许他们下载他们的产品。

以下是链接示例:http ://www.psptubestop.com/dl/2z129a2.php?reference=6d556bde201a2fe4079874168&password=535864380ee2bc0f57cced3fe&pid=402

很多客户说他们下载的时候,.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");

谢谢你的帮助。

4

3 回答 3

2

我愿意打赌这与文件名中有一个空格有关,因为标题中的文件名是PSP_Tubes_PSP_Tubes_Lisa_Cree_The Gift_6932.zip并且文件希望保存为PSP_Tubes_PSP_Tubes_Lisa_Cree_The.

于 2012-10-24T17:31:20.423 回答
2

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

header('Content-Disposition: attachment; filename="'.$originalfilename.'"');
于 2012-10-24T17:30:23.480 回答
0

添加一个看起来像文件名的虚拟 GET 参数。

...&fname=/foo.zip
于 2012-10-24T17:25:40.143 回答