下面是 PHP 实现图片下载的完整攻略。
在 PHP 中,我们可以利用 $_GET
变量获取请求参数,例如可以这样获取图片地址:
$ImageUrl = $_GET["url"];
获取图片信息需要使用 getimagesize
函数,代码示例如下:
header('Content-Type: '.$ImageInfo['mime']);
header('Content-Disposition: attachment; filename="'.basename($ImageUrl).'"');
header('Content-Length: ' . filesize($ImageUrl));
header("Pragma: public");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
函数 getimagesize
可以为图像文件取回大小等信息,并返回一些有关于图像信息的数值和字符串。通过设置 header
头信息,我们可以让浏览器自动下载这张图片。
最后,我们可以输出图片内容,使用 readfile
函数读取文件内容并输出,代码如下:
readfile($ImageUrl);
以下代码实现了让用户输入图片网址的功能,并将其转换为下载链接:
<html>
<form method="get" action="download.php">
<input type="text" name="url">
<input type="submit" name="submit" value="Download">
</form>
</html>
<?php
if(isset($_GET['submit'])){
$ImageUrl = $_GET["url"];
$ImageInfo = getimagesize($ImageUrl);
header('Content-Type: '.$ImageInfo['mime']);
header('Content-Disposition: attachment; filename="'.basename($ImageUrl).'"');
header('Content-Length: ' . filesize($ImageUrl));
header("Pragma: public");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
readfile($ImageUrl);
}
?>
用户在表单中输入图片网址,点击下载按钮后即可下载图片。
以下代码实现了通过传递图片 ID 下载图片的功能:
<?php
$ImageId = $_GET["id"];
if ($ImageId == "1") {
$ImageUrl = "https://www.example.com/image1.jpg";
} else if ($ImageId == "2") {
$ImageUrl = "https://www.example.com/image2.jpg";
}
$ImageInfo = getimagesize($ImageUrl);
header('Content-Type: '.$ImageInfo['mime']);
header('Content-Disposition: attachment; filename="'.basename($ImageUrl).'"');
header('Content-Length: ' . filesize($ImageUrl));
header("Pragma: public");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
readfile($ImageUrl);
?>
在这个示例中,我们通过传递图片 ID 到 PHP 中,然后判断 ID 来设置要下载的图片地址。用户在浏览器中访问对应网址,就可以自动下载指定 ID 的图片了。