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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Linearized pdf

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Файлы не отдаются на скачивание
Ghost
Отправлено: 25 Сентября, 2014 - 07:08:21
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




Здравствуйте.

Прошу помощи. Сайт написан на 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>
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB