我有图像列表,我希望每个图像都有一个“下载”链接,以便用户可以下载图像。
所以有人可以指导我如何为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.'); } ?>
如果仅使用常规链接链接到此脚本,则将下载文件。
顺便说一句,上面的代码段需要在页面的开头执行(在没有任何标题或HTML输出之前。) 还要注意如果您决定基于此创建一个函数来下载任意文件,则需要-确保 接受目录$ _GET或$ _POST的输入,确保防止遍历目录(realpath方便),仅允许在定义的区域内进行下载,等等。