PHP-файл чтения с внешнего сервера

У меня проблема с readfile () с внешнего сервера. Загруженный файл всегда сломан и имеет размер около 3,4kb. Он работает на локальном хосте.

первая:

$file_name = $_POST['myname']; readfile("http://www.ftj.eu/.../3n.pdf"); header("Content-Disposition: attachment; filename=$file_name" .date("mdy") . ".pdf"); 

второй:

Вы знаете, почему он не работает даже на локальном компьютере?

 readfile("3n.pdf"); header("Content-Disposition: attachment; filename=$_POST['myname']" .date("mdy") . ".pdf"); 

Ошибка анализа: синтаксическая ошибка, неожиданный T_ENCAPSED_AND_WHITESPACE, ожидающий T_STRING или T_VARIABLE или T_NUM_STRING

Пожалуйста, помогите мне.

РЕДАКТИРОВАТЬ:

помогите мне сделать readfile с внешнего URL-адреса.

У вас есть синтаксическая ошибка, а не проблема с readfile() как @Will уже упоминалось.

Замените это:

 header("Content-Disposition: attachment; filename=$_POST['myname']" .date("mdy") . ".pdf"); 

С этим (добавление фигурных скобок вокруг $_POST['myname'] ):

 header("Content-Disposition: attachment; filename={$_POST['myname']}" .date("mdy") . ".pdf"); ^ ^ 

Редактировать:

Что касается readfile() из внешнего URL-адреса, это то, что должно сказать об этом Руководство PHP:

URL-адрес может использоваться как имя файла с этой функцией, если обертки fopen включены. См. Fopen () для получения дополнительной информации о том, как указать имя файла. См. Поддерживаемые протоколы и обертки для ссылок на информацию о том, какие способности могут иметь различные обертки, заметки об их использовании и информация о любых предопределенных переменных, которые они могут предоставить.

Это означает, что вам нужно включить allow_url_fopen в php.ini или вы можете использовать завиток, чтобы загрузить файл на своем сервере, а затем передать его своим клиентам.

Пример использования curl:

 <?php $remote_file_url = 'http://www.ftj.eu/.../3n.pdf'; $downloadedFileName = "your_pdf_file.pdf"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $remote_file_url); $downloadedFile = fopen($downloadedFileName, 'w+'); curl_setopt($ch, CURLOPT_FILE, $downloadedFile); curl_exec ($ch); curl_close ($ch); fclose($downloadedFile); readfile($downloadedFileName); header("Content-Disposition: attachment; filename={$_POST['myname']}" .date("mdy") . ".pdf"); 

Вероятно, ваш сервер настроен на то, чтобы не открывать удаленные файлы, поэтому вы не можете использовать fopen, readfile и подобные ему команды, если вы не измените его конфигурацию.