[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скачать файл с сервера ?
WhiteKnight
Многие пишут как закачивать фалы на сервер. А скачивать как ?

У меня контент странички хранится в БД. Есть возможность ее просмотреть но еще нужно скачать весь этот контент файлом название.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 туда передавать данные для скачивания и скрипт для скачивания ? хотя возможно будет тоже самое "Скачивается сам файл со скриптом"

Спустя 20 минут, 30 секунд (4.01.2010 - 10:48) twin написал(а):
Цитата
качается не не контент а скрипт весь, который отвечает за вывод контента..

Не понял, какой скрипт... Качается то, что ты отправишь в поток. Или ты в моем скрипте в скачиваемом файле имеешь такой текст:

echo ' Кишки и внутренности.';

а не такой:
Кишки и внутренности.
?

Спустя 25 минут, 32 секунды (4.01.2010 - 11:13) WhiteKnight написал(а):
twin
нет не скрипт просто скачался, а генерируемая скриптом вся 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 написал(а):
Чтобы не плодить темы озвучу похожую проблему
В моём случае после проверок файл отдаётся так
$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Мб)
В комментариях специалистами намекалось, что такой способ потребляет много оп.памяти + пока не рисковал испробовать его на файлах большого размера на удалённом компьютере
Читал про пример, но нужна кроссерверверная реализация без возможности установки каких-либо модулей sad.gif

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

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.