我有一组图片,希望每张图片旁边都有一个“下载”链接,以便用户可以下载图片。请问有人能指导我如何在php中提供任何文件的下载链接吗?
【编辑】 我希望点击下载链接后会显示一个下载面板,而不是在浏览器中显示图片。
【编辑】 我希望点击下载链接后会显示一个下载面板,而不是在浏览器中显示图片。
<?php
// Fetch the file info.
$filePath = '/path/to/file/on/disk.jpg';
if(file_exists($filePath)) {
$fileName = basename($filePath);
$fileSize = filesize($filePath);
// Output headers.
header("Cache-Control: private");
header("Content-Type: application/stream");
header("Content-Length: ".$fileSize);
header("Content-Disposition: attachment; filename=".$fileName);
// Output file.
readfile ($filePath);
exit();
}
else {
die('The provided file path is not valid.');
}
?>
header
函数之前没有输出 任何 内容吗?(如果有的话,header
命令将被忽略,因此你可能会遇到你所描述的问题。)请检查你的 PHP 错误日志。 - John Parkerheader('Content-Disposition: attachment');
就是这样。例如,Facebook也是如此。
您可以在 .htaccess 文件中指定不同的文件扩展名来实现此功能。有时这比硬编码到应用程序中更容易。
<FilesMatch "\.(?i:pdf)$">
ForceType application/octet-stream
Header set Content-Disposition attachment
</FilesMatch>
<a href="path/to/your/file">download</a>
? - RaYellecho '<a href="path/to/your/file">download</a>';
:P - Pekka