我知道已经有很多关于使用 PHP 强制下载的问题,但我找不到我做错了什么以及我应该怎么做。
我有一个包含文件名的列表,我想通过单击按钮下载其中一个。
我的 jQuery:
$(".MappeDownload").on("click",function(e){
e.stopPropagation();
fileId=$(this).val()
$.post("ajax/DownloadFile.php",{ id : fileId})
})
在服务器端,我有一个包含文件名和文件路径的表。
$sql = "SELECT vUploadPfad, vUploadOriginname FROM tabUpload WHERE zUploadId='$_POST[id]'";
$result = mysql_query($sql) or die("");
$file = mysql_fetch_array($result);
$localfile = $file["vUploadPfad"];
$name=$file["vUploadOriginname"];
$fp = fopen($localfile, 'rb');
header("Cache-Control: ");
header("Pragma: ");
header("Content-Type: application/octet-stream");
header("Content-Length: " . filesize($localfile));
header("Content-Disposition: attachment; filename='".$name."';");
header("Content-Transfer-Encoding: binary\n");
fpassthru($fp);
exit;
AJAX 请求成功,我得到了正确的标题(文件大小、文件名等),但下载没有开始。