Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Linearized pdf
Форумы портала PHP.SU » » Работа с файловой системой и файлами » Linearized pdf

Страниц (1): [1]
 

1. Ghost - 25 Сентября, 2014 - 07:08:21 - перейти к сообщению
Здравствуйте.

Прошу помощи. Сайт написан на Yii, система со встроенным редактором (kcfinder). Через редактор администратор загружает pdf-файлы. Однако в броузере они не выводятся, на скачивание не отдаются. Выводится:
"%PDF-1.4
%����
2799 0 obj <</Linearized 1/L 1515552/O 2801/E 199997/N 104/T 1459523/H [ 1116 2606]>>
endobj"
...и затем крокозябры, видимо, описывающие разметку документа. Подскажите, как принудительно отдавать файл на скачивание?

В .htaccess прописано:
CODE (htmlphp):
скопировать код в буфер обмена
  1. AddType "application/pdf" .pdf


Если бы формировалась статичная страница, можно было бы написать что-то вроде этого:
PHP:
скопировать код в буфер обмена
  1. function file_force_download($file) {
  2.   if (file_exists($file)) {
  3.     if (ob_get_level()) {
  4.       ob_end_clean();
  5.     }
  6.     header('Content-Description: File Transfer');
  7.     header('Content-Type: application/octet-stream');
  8.     header('Content-Disposition: attachment; filename=' . basename($file));
  9.     header('Content-Transfer-Encoding: binary');
  10.     header('Expires: 0');
  11.     header('Cache-Control: must-revalidate');
  12.     header('Pragma: public');
  13.     header('Content-Length: ' . filesize($file));
  14.     readfile($file);
  15.     exit;
  16.   }
  17. }


Но - редактор.

Может быть, перехватывать каким-либо образом обращение к файлу и перенаправлять на доп. скрипт? Как тогда это лучше сделать?
Или же как ещё можно реализовать необходимый функционал?

Буду очень признателен за помощь.
(Добавление)
Извините за беспокойство. Нашёл решение. Смотрел совсем не в ту сторону.

.htaccess:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <IfModule mod_headers.c>
  2.     <FilesMatch "\.(?i:pdf)$">
  3.     ForceType application/octet-stream
  4.     Header set Content-Disposition attachment
  5.     </FilesMatch>
  6. </IfModule>

 

Powered by ExBB FM 1.0 RC1