Просмотр полной версии : Скачка файла как на slil.ru
I love this game
08.08.2009, 17:18
Подскажите плз кусок кода, что бы предлагалось скачать файл с задержкой в n-секунд, как на slil.ru!
<script language="javascript">
function StartGlide() {
y = 60;
action = window.setInterval("Glide()",1000);
}
function Glide() {
y = y - 1;
document.getElementById('errt').innerHTML= y;
if (parseInt(y)<='0') {
document.getElementById('countdown').style.display ='none';
document.getElementById('links').style.display='bl ock';
window.clearInterval(action);
}
}
</script>
<table align="center">
<tr>
<td>
<div id="countdown" style="display:block;" align="center"><b>Дождитесь своей очереди<br><span id="errt" name="errt">60</span> секунд</b></div>
<div id="links" align="center" style="display:none;">
<a href="link">Ваша ссылка на скачивание файла</a>
</div>
</td>
</tr>
</table>
<script language="javascript">StartGlide();</script>
I love this game
08.08.2009, 17:33
Спасибо) Но че то не начинается скачка!
nezachto,nezabud v
"document.getElementById('links').style.display='bl ock';"
izmenit na 'block',eto bagi vbulletin zdes
I love this game
08.08.2009, 17:40
))) О изменил, спс, но он просто предлагает скачать, а можно так что бы уже вылетело окошко с закачкой?
tochnee vot tak:
iz
document.getElementById('countdown').style.display ='none';
document.getElementById('links').style.display='bl ock';
window.clearInterval(action);
v
document.getElementById('countdown').style.display ='none';
document.getElementById('links').style.display='bl ock';
location.href="SSYLKA";
window.clearInterval(action);
I love this game
08.08.2009, 17:45
Все, огромноее спасибо)
ne spasibo , a plusov bolshe stav' :D shuchu
I love this game
08.08.2009, 17:55
Мог бы больше, поставил бы!)
dr.5y51em
11.08.2009, 10:36
Щас полетят маты в мою сторону, но безопаснее всего выдавать через PHP. Хотя очень сильно напрягает сервер. Скрипт не мой, где спёр не помню, но мне оч. нравиться что можно скорость отдачи контролировать... В общем вот.
function file_download($filename, $mimetype='application/octet-stream') {
// Задаем ограничение скорости закачки в байтах в секунду
// или ноль, если ограничений не требуется.
// Другим способом задания этого параметра может быть его определение
// через константу, посредством функции define(), в этом случае значение
// будет неизменным для любого запуска скрипта.
// Можно его значение задавать и снаружи функции исходя из каких-либо соображений,
// например, роли пользователя или загрузки сервера, и получать его
// посредством директивы global.
$download_speed = 25000; // Около 25 килобайт в секунду.
// Задаём время дискретизации. С этой периодичностью клиенту будут отдаваться
// блоки данных считываемые из файла.
$time_discret = 1;
if (file_exists($filename)) {
header($_SERVER["SERVER_PROTOCOL"] . ' 200 OK');
header('Content-Type: ' . $mimetype);
header('Last-Modified: ' . gmdate('r', filemtime($filename)));
header('ETag: ' . sprintf('%x-%x-%x', fileinode($filename), filesize($filename), filemtime($filename)));
header('Content-Length: ' . (filesize($filename)));
header('Connection: close');
header('Content-Disposition: attachment; filename="' . basename($filename) . '";');
$f=fopen($filename, 'r');
// Проверяем задано ли ограничение скорости
if((int) $download_speed > 0) {
while(!feof($f)) {
// Включаем таймер
$time_start = microtime(true);
// Читаем блок данных, которых мы должны отдать за время дискретизации
echo fread($f, ceil($download_speed*$time_discret));
flush();
// Находим время за которое наши данные отправлены
$time_end = microtime(true);
$time = $time_end - $time_start;
// Если время, оставшееся до конца времени дискретизации больше нуля,
// то приостанавливаем выполнение скрипта на величину этого времени в микросекундах.
if($time_discret-$time > 0) usleep(($time_discret-$time)*1000000);
}
}
else {
// Если у нас не задано ограничение скорости, то выполняем старый вариант кода
while(!feof($f)) {
echo fread($f, 1024);
flush();
}
}
fclose($f);
} else {
header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found');
header('Status: 404 Not Found');
}
exit;
}
file_download('ИМЯ_ФАЙЛА');
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot