Как сделать файл PDF загружаемым в ссылке HTML?

Ошибка синтаксиса: ошибка синтаксиса, неожиданный T_XXX

Случается, когда в неожиданном месте есть T_XXX токен , несбалансированные (лишние) круглые скобки, использование короткого тега без его активации в php.ini и т. д.

Вопросы, относящиеся:

Для получения дополнительной помощи см .:

  • http://phpcodechecker.com/ - что дает более полезные объяснения ваших синтаксических проблем.

119
задан Rob W 9 February 2012 в 10:22
поделиться

3 ответа

Вместо того, чтобы связаться с файлом pdf, вместо этого сделайте что-то как

<a href="pdf_server.php?file=pdffilename">Download my eBook</a>

который производит пользовательский заголовок, открывает PDF (двоичный сейф) и печатает данные к браузеру пользователя, затем они могут принять решение сохранить PDF несмотря на свои настройки браузера. pdf_server.php должен быть похожим на это:

header("Content-Type: application/octet-stream");

$file = $_GET["file"] .".pdf";
header("Content-Disposition: attachment; filename=" . urlencode($file));   
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Description: File Transfer");            
header("Content-Length: " . filesize($file));
flush(); // this doesn't really matter.
$fp = fopen($file, "r");
while (!feof($fp))
{
    echo fread($fp, 65536);
    flush(); // this is essential for large downloads
} 
fclose($fp); 

PS: и очевидно выполненный некоторые проверки работоспособности на переменной "файла", чтобы препятствовать тому, чтобы люди крали Ваши файлы те, которые не принимают расширения файла, отклоняют наклонные черты, добавляют .pdf к значению

116
ответ дан TravisO 24 November 2019 в 01:42
поделиться

В приложении Ruby on Rails (особенно с чем-то как драгоценный камень Креветки и плагин направляющих Prawnto), можно выполнить это немного проще, чем полное на сценарии (как предыдущий пример PHP).

В Вашем контроллере:

def index

 respond_to do |format|
   format.html # Your HTML view
   format.pdf { render :layout => false }
 end
end

рендеринг: расположение => ложная часть говорит, что браузер для открытия "Хотели бы Вы загружать этот файл?" подсказка вместо того, чтобы пытаться представить PDF. Тогда Вы были бы в состоянии связаться с файлом обычно: http://mysite.com/myawesomepdf.pdf

-1
ответ дан btw 24 November 2019 в 01:42
поделиться

Это - ключ:

header("Content-Type: application/octet-stream");

Тип контента application/x-pdf-document или приложение/PDF отправляются при отправке файла PDF. Adobe Reader обычно устанавливает обработчик для этого типа MIME, таким образом, браузер передаст документ Adobe Reader, когда любой из типов MIME PDF будет получен.

5
ответ дан Sudden Def 24 November 2019 в 01:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: