如何获取缓存中文件的相对路径

时间:2013-10-25 10:19:30

标签: symfony symfony-2.3

我正在尝试获取app / cache目录中文件的相对路径。

我尝试过使用自定义配置文件:

parameters:    
output_dat_path : %kernel.root_dir%/cache/%kernel.environment%/myfile.dat

我也试过了:

$kernel = $this->get('kernel'); 
$path = $kernel->getRootDir() . '/cache/' . $kernel->getEnvironment() . 'myfile.dat';

两种方式生成绝对路径,在控制器或服务中使用它们都可以正常工作,但是,我需要一个相对路径来为用户生成链接。

我正在考虑将文件移动到我的服务中的web目录,并使用模板中的资产来生成链接,但该文件对每个用户都是私有的,我不想公开它。

有什么想法吗?

提前致谢。

更新

我解决了这个问题如下:

  1. 用户经过身份验证后,会生成他的文件。如果文件不存在,则生成。如果存在,则控制器检查用户权限,时间等,并返回文件。
  2. 如果必须生成系统,则会在专用文件夹中创建文件,并生成加密名称。使用base_64生成加密名称,之后进行一些更改。
  3. 系统向用户显示链接。该链接类似于/ get / privatefile / eDfa ... 23Hn
  4. 当用户点击它时,控制器会检查用户,创建时间等
  5. 如果一切正常,控制器将返回文件。
  6. 我这样做是因为文件必须创建一次,并且可以在短时间内使用,之后必须删除。如果用户将链接传递给其他人,则加密名称的校验和将失败,并且无法访问该文件。

    我确信这不是最佳解决方案,但它可以正确地知道。

0 个答案:

没有答案