我正试图强制下载php。从这里: http://www.iwantanimage.com/animals/animals01.html。点击英镑图像&下一页提供三种格式的选项。
这是我的PHP代码
<?php
header('Content-disposition: attachment; filename=sterling02md.jpg');
header('Content-type: image.jpg');
readfile('sterling02md.jpg');
header('Content-disposition: attachment; filename=sterling02lg.jpg');
header('Content-type: image.jpg');
readfile('sterling02lg.jpg');
header('Content-disposition: attachment; filename=sterling.jpg');
header('Content-type: image.jpg');
readfile('sterling02.jpg');
?>
然而,下载的唯一图片是sterling02md.jpg。如何修复代码以便用户可以下载所选文件? 谢谢
答案 0 :(得分:1)
您的内容类型不正确。您必须提供文件的mime类型,即image/jpeg
。不是image.jpg
。
同样,您无法在单个HTTP请求中强制下载3个单独的文件。虽然某些浏览器确实支持多个文件,但您必须将每个文件封装在一个单独的MIME主体块中,而您没有这样做。
为单次下载提供这3个文件的.zipped副本,或提供3个单独的下载链接,每个链接一个文件。
答案 1 :(得分:0)
在查询字符串download.php?option=1
if (!isset($_REQUEST['option']) {
//redirect away
}
if ($_REQUEST['option'] == 1) {
header(...)
//sterling02md.jpg
}
答案 2 :(得分:0)
您可以尝试使用图片downalod.php?img=sterling02
$image = isset($_GET['img']) ? $_GET['img'] : "noimage" ;
$image .= ".jpg";
header('Content-disposition: attachment; filename='.$image);
header('Content-Type: image/jpeg');
readfile($image);
但如果您想强制下载,请使用
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Transfer-Encoding: binary ");
header('Content-disposition: attachment; filename='.$image);
readfile($image);