1
默认情况下,symfony将文件上传到web/upload文件夹,这样任何人都可以访问它们。我需要检查对文件的每个请求的用户凭据。我应该怎么做?使用symfony安全文件管理
默认情况下,symfony将文件上传到web/upload文件夹,这样任何人都可以访问它们。我需要检查对文件的每个请求的用户凭据。我应该怎么做?使用symfony安全文件管理
将您的上传内容移到您的webroot之外,例如/ data/uploads。在这种情况下,你需要把这个在您的ProjectConfiguration文件:
sfConfig::set('sf_upload_dir' => sfConfig::get("sf_data_dir") . DIRECTORY_SEPARATOR . 'uploads');
前提是你总是用sf_upload_dir指定上传文件夹,您所有的文件都将保存在这里。
的解决方案的第二部分需要一个新的动作,即得到一个文件名,检查用户是否有权访问它,并返回:
readfile()
,设置正确的Content-Type和Content-Lenght标题后。
如何在symfony中正确调用readfile()? – Dziamid 2010-11-18 20:03:45
你把它称为任何其他功能 - 没有“symfony”的方式来做到这一点。 – Maerlyn 2010-11-18 20:21:26
我的意思是,它直接写入输出缓冲区,如果你只是简单地调用它 - 那么symfony将无法正确输出标题。我是否必须用ob_start()捕获输出并将它传递给$ this-> getResponse() - > setContent()? – Dziamid 2010-11-18 23:01:59