У меня контент странички хранится в БД. Есть возможность ее просмотреть но еще нужно скачать весь этот контент файлом название.txt
Мысль такая у меня.
1) Создать файл на сервере название.txt
2) внести в него контент и сохранить
3) надо как то его скачать ? как ?
4) удалить временный файл
может я не в правильном направлении мыслую
Спустя 5 часов, 46 минут, 5 секунд (4.01.2010 - 08:21) twin написал(а):
Не обязательно файл сохранять. Ведь по сути что есть файл - те же нули и единицы, записанные в определенном месте диска. Когда мы скачиваем файл, получаем эту последовательность в виде потока. Но совсем не обязательно иметь файл в виде магнитных меток на диске. Можно просто органризовать поток. Как говорят - сгенерировать на лету.
А чтоб браузер принял этот поток как файл, нужно отдать необходимые заголовки. Вот пример:
А чтоб браузер принял этот поток как файл, нужно отдать необходимые заголовки. Вот пример:
<?php
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=название_файла.txt");
echo ' Кишки и внутренности.';
Спустя 2 часа, 6 минут, 14 секунд (4.01.2010 - 10:27) WhiteKnight написал(а):
twin
качается не не контент а скрипт весь, который отвечает за вывод контента..
Сделать чтоли отдельный download.php туда передавать данные для скачивания и скрипт для скачивания ? хотя возможно будет тоже самое "Скачивается сам файл со скриптом"
качается не не контент а скрипт весь, который отвечает за вывод контента..
Сделать чтоли отдельный download.php туда передавать данные для скачивания и скрипт для скачивания ? хотя возможно будет тоже самое "Скачивается сам файл со скриптом"
Спустя 20 минут, 30 секунд (4.01.2010 - 10:48) twin написал(а):
Цитата |
качается не не контент а скрипт весь, который отвечает за вывод контента.. |
Не понял, какой скрипт... Качается то, что ты отправишь в поток. Или ты в моем скрипте в скачиваемом файле имеешь такой текст:
echo ' Кишки и внутренности.';
а не такой:
Кишки и внутренности.?
Спустя 25 минут, 32 секунды (4.01.2010 - 11:13) WhiteKnight написал(а):
twin
нет не скрипт просто скачался, а генерируемая скриптом вся html страничка (правда почему то с расширением PHP) а нужно было только скачать $row['content']
нет не скрипт просто скачался, а генерируемая скриптом вся html страничка (правда почему то с расширением PHP) а нужно было только скачать $row['content']
Спустя 4 минуты, 48 секунд (4.01.2010 - 11:18) twin написал(а):
Во втором заголовке указывается и название и расширение...
А чтоб контент отдельно получить, его и выдавай в поток. Как будто это записанный на диск файл.
А чтоб контент отдельно получить, его и выдавай в поток. Как будто это записанный на диск файл.
<?php
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=название_файла.txt");
// Запрос
echo $row['content'];
Спустя 9 месяцев, 16 дней, 12 часов, 49 минут, 10 секунд (20.10.2010 - 23:07) bret написал(а):
Чтобы не плодить темы озвучу похожую проблему
В моём случае после проверок файл отдаётся так
Приемлемый ли это вариант? (файлы для скачивания - архивы и картинки, пока стоит ограничение в 1,5Мб)
В комментариях специалистами намекалось, что такой способ потребляет много оп.памяти + пока не рисковал испробовать его на файлах большого размера на удалённом компьютере
Читал про пример, но нужна кроссерверверная реализация без возможности установки каких-либо модулей
В моём случае после проверок файл отдаётся так
$ext = explode(".", $rarr[0]['fpath']);
header('Content-Type: application/octet-stream');
header('Accept-Ranges: bytes');
header('Content-disposition: attachment; filename="'.($rarr[0]['fname']).'.'.array_pop($ext).'"');
readfile("files/f".$rarr[0]['fpath']);
exit(0);
Приемлемый ли это вариант? (файлы для скачивания - архивы и картинки, пока стоит ограничение в 1,5Мб)
В комментариях специалистами намекалось, что такой способ потребляет много оп.памяти + пока не рисковал испробовать его на файлах большого размера на удалённом компьютере
Читал про пример, но нужна кроссерверверная реализация без возможности установки каких-либо модулей

Спустя 9 часов, 26 минут, 10 секунд (21.10.2010 - 08:34) linker написал(а):
Чет я не совсем понял, а длину потока кто будет указывать?