在我的应用程序中,有一些用户上传到服务器的PDF文件。这些是私人文件,无法获得全局可见性。
我尝试将这些文件上传到受保护的目录(例如 / protected / uploads )。用户必须能够查看这些文件,但客户端浏览器必须不 类似于"内部视图"我的申请。
我该怎么办?
如果我使用"资产"目录文件将全局可见,对吗?
谢谢!
答案 0 :(得分:1)
您需要发送正确的标头并执行读取文件,例如:
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="yourPDF.pdf"');
header('Content-Length: ' . filesize($filename));
readfile($filename);
这将按照您的要求在浏览器中打开文件,并阻止用户直接抓取它。
答案 1 :(得分:0)
您所追求的是请求组件sendFile
上的方法。这里简要介绍一下:http://www.yiiframework.com/doc/api/1.1/CHttpRequest#redirect-detail
用法是:
Yii::app()->request->sendFile($filename, $content);
$filename
将是您希望文件用户下载的名称