эммм, вопрос непонятен. Суть сопоставления по таблице в том, что у тебя определенному шифру соответствует определенный путь в файловой системе, либо имя файла. В чем именно проблема?
Slovoblydie я тебе дал код, там есть ВСЕ что тебе нужно. Возьми бумажку и распиши русским языком то, что ты там у меня увидел. Хватит курить и писать... много... точиями...
На мой вопрос так никто и не ответил, как ограничить количество потоков, если разрешено качать, к примеру, одновременно только два файла, чтобы выводить ошибку пользователю? завести счетчик и проверять его значение?
Можно ли ограничить скорость скачивания какими-либо средствами? Например, кусками как-то отдавать или еще что?
krow7, для начала нужно решить: можешь ли ты себе позволить долго держать соединение. если отдаешь медленно у тебя может резко подскочить количество одновременно открытых тредов вэб-сервера и их может не хватить. не зря ставят перед apache еще один сервер в роли прокси - чтобы апач отделался от задания быстро, невзирая на фактическую скорость передачи данных. вот если в самом nginx есть какое-то управление QoS, тогда наверное можно подумать о замедлении.
Пробую использовать код 440hz, все работает только проблема в том, последние байты очень долго загружает. Т.е. если файл 8.7 Мб, то 8.5 загружает за 30 сек, а оставшиеся 200 кб может еще 30-40 сек. В чем может быть проблема? Оперой фактически файл скачивается, но сама Опера указывает что файл не докачен Также просьба разжевать работу кода с классом, не совсем понял куда его цеплять. Там ведь имеется еще 2 функции. Спасибо
К предыдущему посту У меня клик на скачивание происходит в файле index.php, в функции view_file() Код (Text): <form method=\"POST\" action=\"modules.php?name=".$module_name."\"> <input type=\"hidden\" name=\"lid\" value=\"".$lid."\"> <input type=\"hidden\" name=\"file\" value=\"getit\"> <input type=\"submit\" value=\""._FILES_DOWNLFILE."\"> </form> Где lid = id файла, getit = файл куда идет субмит getit.php и происходит отдача файла.Раньше я отдавал таким образом Код (Text): header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$url.""); Где $url путь к файлу+сам файл. Хочу использовать вышеприведенный скрипт. Подскажите как прикрутить
Id файла, его название хранится в БД, сам путь прописан в конфиге. Это я все вытягиваю, просто не знаю как прикрутить скрипт
ну ты просто под видом ссылки с именем файла даешь ссылку на скрипт и передаешь туда айдишник файла. соотв. вместо того что я написал вписываешь свое. путь там и все такое =)
Т.е. Код (Text): <?php $a = new download('ПУТЬ К ФАЙЛУ КОТОРЫЙ ХОЧЕШЬ ОТДАТЬ', 'ИМЯ ПОД КОТОРЫМ ЕГО УВИДИТ ПОЛЬЗОВАТЕЛЬ', 'это тебе пока рано. Оставь как везде application/force-download', true); if ($a->download_file()) { if ($result = $db_filer->query("UPDATE `files` SET `downloads`=`downloads`+1, `date`=`date` WHERE ляляля пупупу ну ты понял это счетчик скачиваний'")) { //updated } Этот код вместо клика на скачивание? Этого Код (Text): <form method=\"POST\" action=\"modules.php?name=".$module_name."\"> <input type=\"hidden\" name=\"lid\" value=\"".$lid."\"> <input type=\"hidden\" name=\"file\" value=\"getit\"> <input type=\"submit\" value=\""._FILES_DOWNLFILE."\"> </form> ??? Вот именно тут у меня затык, как сформировать.
я вобще не понимаю, что это у тебя за форма =) вобще. т.е. совсем. я на нее не буду смотреть, можно? делается так, запрашиваешь из бд все файлы которые доступны юзеру, делаешь на них ссылки <a href='download.php?id=НОМЕРФАЙЛА'>ИМЯФАЙлА</a> внутри там проверяешь, есть ли права скачать, и отдаешь. $a = new download(каталог где файлы . '/' . имя файла, 'ИМЯ ПОД КОТОРЫМ ЕГО УВИДИТ ПОЛЬЗОВАТЕЛЬ', 'application/force-download', true); $a->download_file();
А и еще Код (Text): $a = new download(каталог где файлы . '/' . имя файла, 'ИМЯ ПОД КОТОРЫМ ЕГО УВИДИТ ПОЛЬЗОВАТЕЛЬ', 'application/force-download', true); Это должно находиться в файле download.php?
Помоему тут Код (Text): if (($speed = $this->properties['max_speed']) > 0) $sleep_time = (8 / $speed) * 1e6; else $sleep_time = 0; Скобок не хватает
Короче, у меня не пашет. Белый лист. Показ ошибок включен. В логах сервера ничего не обычного, дальше не знаю куда копать.