如何通过一个独特的PHP文件下载多个图像?

时间:2012-02-05 23:37:50

标签: php image

我需要一个能够从我服务器上的文件夹下载多个图像的php文件,每个图像都有一个唯一的ID。

e.g。

我的服务器上有一张图片:/home/example/public_html/multipleimage/2.png

我想通过独特的php文件下载该图像:http://example.com/file.php

我会输入以下网址:http://example.com/file.php?id=2 浏览器必须返回图像。

但是...... php文件怎么样? 可以在不通过数据库的情况下完成吗?

感谢。

2 个答案:

答案 0 :(得分:4)

<?php
header("Content-Type: image/png");
readfile(
    sprintf(
        '/home/example/public_html/multipleimage/%d.png', 
        $_GET['id']
    )
);

请参阅PHP手册中的以下条目:

请注意,我将sprintf%d一起使用,因此它会将任何非数字ID值静默转换为0,因此像../../etc/passwd这样的恶意输入会尝试读取{{ 1}}。如果您想使用除数字之外的任何其他内容,则需要清理输入以防止directory traversal attacksnull byte poisoning (before PHP 5.3.4)

答案 1 :(得分:0)

我仍然不确定我知道你想要什么,但在这里:

<?php
if (array_key_exists('id', $_GET) && is_numeric($_GET['id'])) {
    header("Content-Type: image/png");
    echo file_get_contents("/home/example/public_html/multipleimage/".$_GET['id'].".png");
}

?>