Подскажите как вывести файл через PHP
В то же время эта функция должна быть "легкой" и не нагружать сервер. Например, при запросе любой картинки на сайте предварительно будет вызван скрипт, и если есть что sdjlbnm? то скрипт считает картинку из файла и выведет ее.
Заранее багодарен
Я себя таковым не счита, но насколько мне известно файлы не грузятся целиком в память, ПА качает файл и сбрасывает во временный файл каждые N байт загруженного файла. На пхп можно написать функцию, которая читает файл порциями по M байт и отправляет.
Просто когда единственная функция для чтения файла - это file(), то тогда PHP действительно всега считывает файлы в память :D
Есть две операции:
1. readfile()
2. fpassthru()
Какой вариант предложите?
пусть название статьи не пугает -- там есть таблица со сравнением функций чтения файлов.
Офф: Для благодарностей есть репутация ;)
Повысить - весы слева. Отображается в зеленных кубиках.
Есть две операции:
1. readfile()
2. fpassthru()
Какой вариант предложите?
Нет, на файловых архивах и т.п. сайтах с большим download-трафиком использовать эти функции неэффективно. Всё происходит именно на уровне файлов и директорий. То есть скажем пользователь кликается по ссылке "скачать", после чего вызывается скрипт, учитывающий факт скачивания, готовит файл для скачивания (помещает его в директорию, доступную только для этого юзера, причём на определённый срок) и этот файл скачивается. URL принимает вид вроде такого: /files/sdfpouikjnvkdfwerfwef/34635684562345623562345/file.mp3
Вариант с применением файловых функций приемлем только при маленькой нагрузке и небольших файлах (скажем до 1 Мб). Иначе MP3 и варез-сервера просто "горели" бы от такой нагрузки :)
ок, буду иметь в виду. потому что сам не читал :D