отправить файл клиенту

Я хочу написать текстовый файл на сервере через Php и попросить клиента загрузить этот файл.

Как я могу это сделать?

По сути, клиент должен иметь возможность загружать файл с сервера.

В дополнение к уже опубликованным данным есть заголовок, который вы, возможно, захотите попробовать.

Его единственное предложение о том, как его нужно обрабатывать, а пользовательский агент может игнорировать его и просто отображать файл в окне, если он знает, как:

<?php header('Content-Type: text/plain'); # its a text file header('Content-Disposition: attachment'); # hit to trigger external mechanisms instead of inbuilt 

См. Rfc2183 для получения дополнительной информации о заголовке Content-Disposition.

Это лучший способ сделать это, если вы не хотите, чтобы пользователь видел реальный URL-адрес файла.

 <?php $filename="download.txt"; header("Content-disposition: attachment;filename=$filename"); readfile($filename); ?> 

Кроме того, вы можете защитить свои файлы с помощью mod_access.

PHP имеет ряд очень упрощенных C-подобных функций для записи в файлы. Вот простой пример:

 <?php // first parameter is the filename //second parameter is the modifier: r=read, w=write, a=append $handle = fopen("logs/thisFile.txt", "w"); $myContent = "This is my awesome string!"; // actually write the file contents fwrite($handle, $myContent); // close the file pointer fclose($handle); ?> 

Это очень простой пример, но здесь вы можете найти больше ссылок на эту операцию:

PHP fopen

Просто отправьте ссылку на сайт по адресу http://www.mydomain.com/textfile.php

И в этом PHP-файле вы вводите следующий код:

 <?php header('Content-Type: text/plain'); print "The output text"; ?> 

Таким образом, вы можете создать динамический контент (из базы данных) … Попробуйте Google отменить «Content-Type», если это не тот, который вы ищете.

Если вы установите тип контента в application / octet-stream, браузер ВСЕГДА будет предлагать файл в качестве загрузки и никогда не будет пытаться отображать его внутренне, независимо от того, какой тип файла он имеет.

 <?php filename="download.txt"; header("Content-type: application/octet-stream"); header("Content-disposition: attachment;filename=$filename"); // output file content here ?>