[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Реализация ссылки "скачать" для файлов с чередующимися именами
Гость_Дмитрий
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 написал(а):
Благодарю,что отозвались:)спасибо большое.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.