【发布时间】:2012-11-22 12:40:55
【问题描述】:
我有一个简单的表单,当回传时,它会调用一个函数来启动下载。路径和文件名是从数据库中提取的,然后我使用标题开始下载。我的下载代码是:
//START DOWNLOAD
header('Content-type: "application/octet-stream"');
header('Content-Disposition: attachment; filename="'.$FILE_PATH.$FILE_NAME.'"');
header("Content-Transfer-Encoding: binary");
header("Connection: close")
在上面的示例中,$FILE_PATH 变量是 /downloads/software/,$FILE_NAME 变量是 client-installer.exe。所以,我希望下载一个名为 client-installer.exe(大约 70MB)的文件到客户端。相反,我得到一个名为 _downloads_software_client-installer.exe 的文件,大小约为 10KB。
我想也许我需要对文件路径/名称进行 urlencode,但这也不能解决问题。所以我在想,也许我的标题有问题,但似乎找不到。
谢谢!
【问题讨论】:
-
请移除 Content-Transfer-Encoding。它在 HTTP 中不存在。
标签: php download content-type content-disposition