Гость_Дмитрий
2.11.2009 - 14:47
1) Есть множество файлов на сервере с чередеющимися именами:
auto (1).jpg;
auto (2).jpg;
auto (3).jpg...
Чтобы не писать большое количество ссылок на эти картинки я применил цикл for
<code>
PHP |
for ($i=1; $i<26; $i++) echo "<li><img src=\"pict/Phones pict/176-220/Auto/Auto ($i).jpg\"><br><a href=\"save.php\">Скачать</a><br>\n"; |
Таким образом на одной странице у меня корректно отображаются 25 картинок.
В файле save.php я написал реализацию ссылки "скачать" только для одного файла.
Содержание файла save.php для первого изображения таково:
PHP |
$path="pict/Phones pict/176-220/Auto/Auto (1).jpg"; if(!file_exists($path)) { echo "Файл не найден"; } else { $size=filesize($path); header("Content-Type: application/explore"); header("Content-Length: $size"); header("Content-Disposition: Attachment; FileName=\"$path\""); readfile($path); } |
?>
2) ТАК ВОТ СУТЬ ВОПРОСА ТАКОВА: подскажите, как сделать так, чтобы не создавать отдельный файл, похожего содержания save.php, для каждого изображения.
Попытался самостоятельно подумать-вышло так:
PHP |
for ($i=1; $i<26; $i++); $path="pict/Phones pict/176-220/Auto/Auto ($i).jpg"; if(!file_exists($path)) { echo "Файл не найден"; } else { $size=filesize($path); header("Content-Type: application/explore"); header("Content-Length: $size"); header("Content-Disposition: Attachment; FileName=\"$path\""); readfile($path); } |
Проблема тут в том, что какую ссылку бы не нажал пользователь, всегда отображается ссылка "скачать" изображения с именем auto (25).jpg. На большее пока не способен.
С уважением, Дмитрий.
PS. (от sergeiss) - используй, плз, тэги оформления кодов!
Спустя 17 минут, 45 секунд (2.11.2009 - 14:05) Семён написал(а):
А нельзя просто получить все файлы из папки с заданным разрешением?
PHP |
$headimage = filesearch("dir/images/","*jpg*"); |
Спустя 22 минуты, 36 секунд (2.11.2009 - 14:27) Guest написал(а):
Ну с выводом изображений у меня все хорошо. Хотя ваш совет кстати:)...
Проблема в том,чтобы при нажатии ссылки под каждым изображением-отображалось диалоговое окно типа: что вы хотите сделать с этим файлом?!
И далее сохранить,открыть... А под всем этим данные о файле...
Все получается только тогда,когда в файле save.php
Создается индивидуальный код для каждого изображения,что при написании очень неудобно и долго...
Это как нибудь можно систематизировать?! Например,как с циклом?!
Спустя 8 минут, 54 секунды (2.11.2009 - 14:36) lawbreaker написал(а):
PHP |
<? for ($i=1; $i<26; $i++) echo "<li><img src=\"pict/Phones pict/176-220/Auto/Auto ($i).jpg\"><br><a href=\"save.php?img=".$i."\">Скачать</a><br>\n";
|
потом файл safe.php
PHP |
if (isset($_GET['img'])) { if (is_numeric($_GET['img'])) { $path="pict/Phones pict/176-220/Auto/Auto ($_GET['img']).jpg"; $size=filesize($path); header("Content-Type: application/explore"); header("Content-Length: $size"); header("Content-Disposition: Attachment; FileName=\"$path\""); readfile($path); }
} |
Спустя 16 минут, 54 секунды (2.11.2009 - 14:53) Семён написал(а):
PHP |
$dir = 'files/images/'; $file_list = glob($dir."*.jpg"); for($i=0; $i<count($file_list); $i++) { echo 'Файл '.$file_list[$i].' <a href="$file_list[$i]">Скачать</a><br/>'; } |
Всё остальное отруливайте JS.
Спустя 6 минут, 39 секунд (2.11.2009 - 15:00) Семён написал(а):
Тоже самое только с функцией.
PHP |
function filesearch($dir,$mask) { $randimage = glob("{$dir}/{$mask}", GLOB_NOSORT); return $randimage; } $file_list = filesearch("files/images","*jpg*"); for($i=0; $i<count($file_list); $i++) { echo 'Файл '.$file_list[$i].' <a href="$file_list[$i]">Скачать</a><br/>'; } |
Спустя 9 часов, 14 минут, 25 секунд (3.11.2009 - 00:14) Guest написал(а):
Благодарю,что отозвались:)спасибо большое.