Выдача файла php скриптом - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ [email protected] (admin) [email protected] (admin) Mon, 13 Jan 2025 22:31:09 +0300 21. <strong>dima.london</strong>, Ну дык там же sleep стоит и отдается кусками по 10кб в сек, поменяй скорость и выдавай кусками по больше + если тестил на денвере flush там до балалайки https://visavi.net/topics/19287/327590 Выдача файла php скриптом Lugaro Thu, 03 Mar 2011 15:30:24 +0300 Сообщения https://visavi.net/topics/19287/327590 22. <strong>Ботаник eGo</strong>, само сабой так элегантнее. <br> Я просто надеюсь на твою помощь. Все-таки и я решил добавить докачку, но явно что-то делаю не так..... https://visavi.net/topics/19287/327572 Выдача файла php скриптом Дмитрий Thu, 03 Mar 2011 14:52:18 +0300 Сообщения https://visavi.net/topics/19287/327572 dima.london, я даже не представляю как допустим твой file_get_contents() выдаст файл в 500++ мб.<br> да и не думаю что file_get_contents() быстрее fread например.<br> без докачки очень худо будет тоже<br> P.S: <pre class="prettyprint">&lt;? if(isset($_GET&#91;&#039;file&#039;])) {$file = $_GET&#91;&#039;file&#039;];} else {$file = &#039;&#039;;} # а ведь так элегантней&#58; $file = (isset($_GET&#91;&#039;file&#039;])) ? $_GET&#91;&#039;file&#039;] &#58; &#039;&#039;; ?&gt;</pre> https://visavi.net/topics/19287/327567 Выдача файла php скриптом KOZZ Thu, 03 Mar 2011 14:40:47 +0300 Сообщения https://visavi.net/topics/19287/327567 <strong>.::lugaro::., Ботаник eGo, </strong> вариант из 4 поста работает в 2-3 раза дольше, даже при использовании flush(). К тому же не поддерживает потоковое воспроизведение файла. <br> Возможно, я что-то не так делаю. Из того кода я только изменил директории на свои, добавил flush() (что само собой существенно ускорило отдачу файла) и изменит MIME тип файла на audio/mpeg (так как использую для обработки мп3-файла. <br> <br> Все равно, скорость на порядок ниже той, если просто выдавать файл как я описал в моем варианте). https://visavi.net/topics/19287/327563 Выдача файла php скриптом Дмитрий Thu, 03 Mar 2011 14:23:52 +0300 Сообщения https://visavi.net/topics/19287/327563 так проще запоминаеться))<br> $ext = pathinfo($file);<br> echo $ext[&#039;extension&#039;]; https://visavi.net/topics/19287/327361 Выдача файла php скриптом Сааааа-нёёёёё-к Wed, 02 Mar 2011 20:53:32 +0300 Сообщения https://visavi.net/topics/19287/327361 $ext = strtolower(substr($file, strrpos($file, &#039;.&#039;) + 1)); // костыль детектед<br> //Good<br> $ext = pathinfo($file,PATHINFO_EXTENSION); https://visavi.net/topics/19287/327359 Выдача файла php скриптом Саня Wed, 02 Mar 2011 20:48:59 +0300 Сообщения https://visavi.net/topics/19287/327359 11. Перед sleep напиши <br> 14. <strong>dima.london</strong>, Загнется твой скрипт при больших файлах, да и нет возможности докачки что не мало важно<br> 15. file_get_contents будет https://visavi.net/topics/19287/327347 Выдача файла php скриптом Lugaro Wed, 02 Mar 2011 19:42:28 +0300 Сообщения https://visavi.net/topics/19287/327347 выдача ведь тоже скриптом происходит. https://visavi.net/topics/19287/327297 Выдача файла php скриптом CROWS Wed, 02 Mar 2011 17:55:53 +0300 Сообщения https://visavi.net/topics/19287/327297 Преимущества:<br> 1) Прямой путь к файлу скрыт. Скачать по прямой ссылке невозможно.<br> 2) В ссылке есть сгенерированный код из сессии, что создает большие трудности для скачивания файла роботом или для граба твоего контента.<br> <br> Ну, для себя, для пущей безопасности и накрутки количества скачиваний роботами, для гостей я добавил еще и каптчу.<br> <br> <em><span style="font-size:x-small">Добавлено через 01:21 сек.</span></em><br> хз, не должно. Хотя, вроде как хавает. https://visavi.net/topics/19287/327293 Выдача файла php скриптом Дмитрий Wed, 02 Mar 2011 17:49:51 +0300 Сообщения https://visavi.net/topics/19287/327293 14. <strong>dima.london</strong>, благодарю за код.<br> <br> А file_get_contents и echo тоже ведь будут оперативу хавать) Файн, например в 100 МБ, а оперативы на ВДС 256) https://visavi.net/topics/19287/327291 Выдача файла php скриптом CROWS Wed, 02 Mar 2011 17:49:05 +0300 Сообщения https://visavi.net/topics/19287/327291 Вот так выглядит у меня файл выдачи мп3-файла (mp3.php):<br> <pre class="prettyprint">if(isset($_GET&#91;&#039;file&#039;])) {$file = $_GET&#91;&#039;file&#039;];} else {$file = &#039;&#039;;} if (preg_match(&#039;|^&#91;a-z0-9_\.\-\/]+$|i&#039;, $file)){ $ext = strtolower(substr($file, strrpos($file, &#039;.&#039;) + 1)); if($ext == &#039;mp3&#039;){ $filename = &#039;папка/подпапка/&#039; . $file; $filename = file_get_contents($filename); header(&#039;Content-Disposition&#58; inline; filename=&quot;&#039; . $file . &#039;&quot;&#039;); header(&#039;Content-type&#58; audio/mpeg&#039;); header(&#039;Content-Length&#58; &#039; . strlen($filename)); echo $filename; } } exit;</pre> Ссылка на скачивание имеет 2 переменные (ид файла в базе и сгенерированный код из сессии).<br> Путь к загрузке лежит через простенький скрипт, где у меня идет проверка сгенерированного кода на совпадение с сессией, существование файла и запись количества скачиваний (+1). <br> То есть если все гут, я пишу +1 скачивание и отдаю файл:<br> <pre class="prettyprint">header (&#039;Location&#58; mp3.php?file=имя_файла.mp3); exit;</pre> https://visavi.net/topics/19287/327288 Выдача файла php скриптом Дмитрий Wed, 02 Mar 2011 17:45:39 +0300 Сообщения https://visavi.net/topics/19287/327288 12. <strong>dima.london</strong>, ок, жду. https://visavi.net/topics/19287/327282 Выдача файла php скриптом CROWS Wed, 02 Mar 2011 17:39:23 +0300 Сообщения https://visavi.net/topics/19287/327282 11. <strong>-V_o_R_o_N_a-</strong>, при чем здесь полный путь? К примеру, в файле ресайда пропиши папку и подпапку, где прячешь файл, а в джет-запросе передавай только имя файла и сгенерированный код. <br> Сейчас поищу код как я себе сделал выдачу мп3-файлов с помощью ресайза. https://visavi.net/topics/19287/327277 Выдача файла php скриптом Дмитрий Wed, 02 Mar 2011 17:36:47 +0300 Сообщения https://visavi.net/topics/19287/327277 8. <strong>dima.london</strong>, нет, файлы должны быть в том же виде, что они и есть. По второму и третему пункту: дак полный путь надо будет выдавать.<br> <br> <em><span style="font-size:x-small">Добавлено через 02:19 сек.</span></em><br> И можно обойтись без дополнительных параметров в GET, а просто сессией, т.е. так, как я написал в первом посте.<br> <br> <em><span style="font-size:x-small">Добавлено через 04:54 сек.</span></em><br> 4. <strong>Ботаник eGo</strong>, <br> <br> <pre class="prettyprint"> while (!feof($f)) { flush(); if (connection_aborted()) { fclose($f); break; } echo fread($f,10000); sleep(1); } </pre> <br> Так или его после нужно ставить? https://visavi.net/topics/19287/327269 Выдача файла php скриптом CROWS Wed, 02 Mar 2011 17:29:15 +0300 Сообщения https://visavi.net/topics/19287/327269 о том как отдать различные расширения файлов с помощья ресайза, читай тут: <a href="http://www.ipm.kstu.ru/it/lec/7.php" target="_blank" rel="nofollow">http://www.ipm.kstu.ru/it/lec/7.php</a> https://visavi.net/topics/19287/327260 Выдача файла php скриптом Дмитрий Wed, 02 Mar 2011 17:23:18 +0300 Сообщения https://visavi.net/topics/19287/327260