PHP: выдача ссылки на скачку по очереди всех картинок поразу
Новая тема Написать ответ
# Сб Окт 15, 2011 4:00 pmYabuti Зарег.: 28.11.2008 ; Сообщ.: 16263Ответить с цитатой
Всем привет!
Подскажите, как сделать такое:
1. Есть php-страница, на которой одна-единственная ссылка:
Код:
<?php
$link='001';
echo '<a href='http://'.$_SERVER['HTTP_HOST'].'/images/'.$link.'jpg>avatarka</a>';
?>


2. Есть папка images, где лежит список картинок с именами от 001.jpg до 999.jpg.

Нужно: Чтобы после одной скачки очередного файла ссылка менялась на скаучку следующей картинки.
То есть, все люди, которые зайдут на страницу, смогут скачать только уникальные аватарки, без повторений.
Можно ли это как-то сделать?

Заранее спасибо! :thup: Drinks or Beer
# Сб Окт 15, 2011 5:38 pmCodd Зарег.: 13.01.2011 ; Сообщ.: 186Ответить с цитатой
Ссылка должна вести на файл download.php

в download.php вставляешь

Код:
<?php

$current_img = file_get_contents('counter.txt');

$images = scandir('images');

file_put_contents('counter.txt', $current_img+1);

header('Content-disposition: attachment; filename="avatar.jpg"');

echo file_get_contents('images/' . $images[$current_img+1]);



в counter.txt - номер изображения, которое будет скачено, сперва сам вставляешь
1
дальше это значение будет увеличиться само после каждого запроса к download.php
# Сб Окт 15, 2011 7:32 pmYabuti Зарег.: 28.11.2008 ; Сообщ.: 16263Ответить с цитатой
Codd, УРА, работает!
Супер! Огромное спасибо! :thup: Drinks or Beer Yahoo!
# Вс Окт 16, 2011 1:40 amEditeur Зарег.: 19.06.2010 ; Сообщ.: 382Ответить с цитатой
Цитата:

$current_img = file_get_contents('counter.txt');

$images = scandir('images');

file_put_contents('counter.txt', $current_img+1);


потоконебезопасно. как вариант использовать flock http://php.net/manual/en/function.flock.php

Цитата:
echo file_get_contents('images/' . $images[$current_img+1]);


через директивы X-Accel-Redirect (Nginx) / X-Sendfile (Apache) будет эффективнее
типа как здесь http://www.jasny.net/articles/how-i-php-x-sendfile/
Новая тема Написать ответ    ГЛАВНАЯ ~ ТЕХНИЧЕСКИЕ ВОПРОСЫ
 
Любое использование материалов, размещенных на ArmadaBoard.com, без разрешения владельцев ArmadaBoard.com запрещено.