2014-10-28 3 views
0

В моем приложении есть несколько файлов PDF, которые пользователи загружают на сервер. Это частные файлы, и они не могут иметь глобальную видимость.Yii - Просмотр защищенных PDF-файлов

Я пытаюсь загрузить эти файлы в защищенный каталог (/protected/uploads, например). Пользователи должны иметь возможность просматривать эти файлы, но они должны не быть видимыми браузером клиента.
Что-то вроде «внутреннего вида» моего приложения.

Как я могу это сделать?
Если я использую каталог «assets», файлы будут глобальными видимыми, не так ли?

Спасибо!

ответ

1

Вам необходимо отправить правильный заголовок и выполнить ReadFile такой as:

header('Content-type: application/pdf'); 
header('Content-Disposition: inline; filename="yourPDF.pdf"'); 
header('Content-Length: ' . filesize($filename)); 
readfile($filename); 

Это откроет файл в браузере по вашему запросу и не позволит пользователю напрямую его захватить.

+0

Привет! Да, я нашел аналогичное решение в другой теме, но это не совсем то, что я искал. Ну, я думаю, это должно быть так. Спасибо! –

+0

Что вы имеете в виду, это не совсем то, что вы ищете? –

+0

Ну, в основном я хотел бы встроить PDF-файлы в свое приложение. Более или менее нравится это расширение: http://www.yiiframework.com/extension/qpdfjs/ –

0

Что вы используете, это метод на компоненте запроса, sendFile. Он кратко описаны здесь: http://www.yiiframework.com/doc/api/1.1/CHttpRequest#redirect-detail

Использование будет:

Yii::app()->request->sendFile($filename, $content); 

$filename будет то, что вы хотите, чтобы пользователи файлов загрузки будет называться

+0

Привет! Спасибо, но этот метод будет загружать файл. Мне нужно просмотреть файл в браузере –

Смежные вопросы