Как загрузить несколько изображений через уникальный файл php? - PullRequest
2 голосов
/ 06 февраля 2012

Мне нужен php-файл с возможностью загрузки нескольких изображений как таковых из папки на моем сервере с уникальным идентификатором для каждого изображения.

, например

У меня есть изображение на моем сервере: /home/example/public_html/multipleimage/2.png

И я хочу скачать это изображение через уникальный файл php: http://example.com/file.php

Я бы набрал следующий URL: http://example.com/file.php?id=2 И браузер должен будет вернуть изображение.

Но ... как должен быть файл php? Можно ли это сделать без прохождения через базу данных?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 06 февраля 2012
<?php
header("Content-Type: image/png");
readfile(
    sprintf(
        '/home/example/public_html/multipleimage/%d.png', 
        $_GET['id']
    )
);

См. Следующие записи в руководстве по PHP:

Обратите внимание, что я использую sprintf с %d, поэтому он будет молча конвертировать любое нечисловое значение идентификатора в 0, поэтому злонамеренный ввод, такой как ../../etc/passwd, попытается прочитать 0.png. Если вы хотите использовать что-то еще, кроме чисел, вам нужно санировать ввод, чтобы предотвратить атаки обхода каталога и отравление нулевыми байтами (до PHP 5.3.4) :

0 голосов
/ 06 февраля 2012

Я до сих пор не уверен, что знаю, чего вы хотите, но здесь все сказано:

<?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");
}

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...