Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru Стол заказов Ограничить скорость скачивания файла

Ограничить скорость скачивания файла


 Serik    28.01.2014    Стол заказов    1482    15

Дано: файлы-аттачи в определённом допполе (обычно гига по 1.5 - 2 каждый)
Нужно: сделать возможность при редактирование в админке ограничить скорость скачивания именно с этого допполя до определённой скорости, скажем 500кбс. В идеале сделать выбор на 3-5 ограничителей, скажем 100 кбс, 300, 500. Но устроит и без выбора.

Комментарии пользователей (15)

lutskboy
3

550 | 104

lutskboy - 28 января 2014 16:40 - Юзер

в этом доп поле вписываете ссылку на файл? Этот файл на вашем сервере?

Serik
4

408 | 191

Serik - 28 января 2014 17:14 - Местный

Да. Да

СПАСИБО надо тыкать в кнопку!

thebeknazar
8

129 | 36

thebeknazar - 28 января 2014 17:20 - Юзер

в настройках системы или группы же можно вроде такое задавать

sergio.lamborghini
4

25 | 42

sergio.lamborghini - 28 января 2014 17:24 - Юзер

В настройках движка есть такая фича. Сначала изучите настройки, потом уже задавайте более чем ламерские вопросы.

Serik
4

408 | 191

Serik - 28 января 2014 18:15 - Местный

Сначала изучите настройки, а потом давайте ламерские советы. Мне не нужно группы настраивать, мне нужно ограничить скорость скачивания В ОТДЕЛЬНО ВЗЯТОМ ДОППОЛЕ,

При этом остальные допполя с сылками не нужно ограничивать - читайте ТЗ
ограничить скорость скачивания именно с этого допполя

СПАСИБО надо тыкать в кнопку!

lutskboy
3

550 | 104

lutskboy - 28 января 2014 17:27 - Юзер

да. есть. но тут файл через доп поле как ссылка вставляется.
если что пишите. попробую реализовать.

Serik
4

408 | 191

Serik - 28 января 2014 18:38 - Местный

ув. Сандер подал хорошую мысль...

Можно не привязывать ограничение именно к допполю, а сделать его исходя из размера файла. Например до 200 mb без ограничений, от 200 до 1000 ограничить в 1000кбс, а свыше 500 ограничить в 500кбс

Сам он пока занят, но и мне не горит - кто сможет цену в личку.

СПАСИБО надо тыкать в кнопку!

Serik
4

408 | 191

Serik - 28 января 2014 19:00 - Местный

Вопрос решен - 3 строчки кода )))

СПАСИБО надо тыкать в кнопку!

ychelovek33
3

184 | 33

ychelovek33 - 28 января 2014 23:30 - Юзер

Serik,
Нам очень интересны эти 3 строчки!!!

dj-avtosh
39

1479 | 390

dj-avtosh - 29 января 2014 06:28 - шашлычник

Serik вряд ли что скажет, слишком давно его знаю :D

skype: elhan.isaev

dj-avtosh
39

1479 | 390

dj-avtosh - 29 января 2014 06:31 - шашлычник

<?php 

$openFile = fopen('file.zip', 'rb');
$speed = 1024; //  kb/s

while(!feof($openFile) && !connection_status()) {
    echo fread($openFile, ($speed ? $speed : 1024));
    flush();
    ob_flush();
    if ($speed) sleep(1);
}

?>

skype: elhan.isaev

cybernatic
12

124 | 125

cybernatic - 29 января 2014 10:22 - Эксперт

Отдавать по кусочкам большие файлы не комильфо, хостер будет материться, а если у Вас будет стоять веб-сервер то лучше юзать nginx там и модули есть соответствующие

dj-avtosh
39

1479 | 390

dj-avtosh - 29 января 2014 10:33 - шашлычник

ну конечно fgets не распространяется на бинарные файлы, это было так для примера.
Ну если есть веб-сервер - то вообще зачем эта тема?)

skype: elhan.isaev

Serik
4

408 | 191

Serik - 29 января 2014 14:53 - Местный

Нет почему же - мне не жалко )) И хотя я побашлял Сандеру на чай с ватрушками энную сумму код всё же вот:

В файле engine/classes/download.class.php

После строки
$file_size = @filesize( $path );

Вставить:
$filem_size = $file_size/1024/1024;
if($filem_size>700) $max_speed = 100;
elseif($filem_size>300) $max_speed = 300;


Где значение переменной $max_speed указвается в kb/s.
Соответственно если файл более 300mb то скорость 300 кбс, если 700 mb и более - 100 кбс

СПАСИБО надо тыкать в кнопку!

Maxic
20 | 4

Maxic - 29 января 2014 20:34 - Юзер

Отдавать большие файлы через php - слишком дорогого стоит. Для таких целей ставят реверс прокси (nginx) - а там уже можно настроить как хочешь.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте