Я хочу написать текстовый файл на сервере через Php и попросить клиента загрузить этот файл.отправить файл клиенту
Как я могу это сделать?
По существу, клиент должен иметь возможность загрузить файл с сервера.
Я хочу написать текстовый файл на сервере через Php и попросить клиента загрузить этот файл.отправить файл клиенту
Как я могу это сделать?
По существу, клиент должен иметь возможность загрузить файл с сервера.
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);
?>
Это очень простой пример, но вы можете найти больше ссылок на такого рода операции здесь:
Просто размещаете ссылку на сайт http://example.com/textfile.php
И в этом PHP файл, поместите следующий код:
<?php
header('Content-Type: text/plain');
print "The output text";
?>
Таким образом, вы можете создать динамический контент (из базы данных) ... Попробуйте Google, чтобы использовать «Content-Type», если это не тот, который вы ищете.
В дополнение к уже опубликованным данным есть заголовок, который вы, возможно, захотите попробовать.
Его только внушение того, как его означало быть обработаны, и агент, пользователь может выбрать, чтобы игнорировать его, и просто отобразить файл в окне, если он знает, как:
<?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.
Я не знал о «Content-Disposition». Спасибо за информацию. +1 – Calvin
Если вы установили тип контента в приложение/октет-поток, браузер ВСЕГДА будет предлагать файл в качестве загрузки и никогда не будет пытаться отображать его внутри, независимо от того, какой тип файла он имеет.
<?php
filename="download.txt";
header("Content-type: application/octet-stream");
header("Content-disposition: attachment;filename=$filename");
// output file content here
?>
PS: хотя он может работать с маленьким d на некоторых UA, его * не * спецификацией RFC, поэтому лучше всего использовать версию в верхнем регистре. –
Другая проблема, связанная с использованием октетного потока, заключается в том, что вы вынуждаете пользователя сохранять его, потому что он не может использовать MIME для определения того, какое приложение открывается с внешней стороны, и это проблема. –
@ Kent Fredric: Согласно RFC, имена заголовков не чувствительны к регистру. – tylerl
Это лучший способ сделать это, если вы не хотите, чтобы пользователь просматривал реальный URL-адрес файла.
<?php
$filename="download.txt";
header("Content-disposition: attachment;filename=$filename");
readfile($filename);
?>
Кроме того, вы можете защитить свои файлы с помощью mod_access.
Ссылка не работает. Не могли бы вы исправить это? –
Это пример ссылки. – Zeusoflightning125