我想通过4个不同的链接下载4个不同的文件.我正在使用Media视图下载文件,但我必须在控制器的下载功能中对文件名进行硬编码:
function download () {
$this->view = 'Media';
$params = array(
'id' => 'example.zip',
'name' => 'example',
'download' => true,
'extension' => 'zip',
'path' => APP . 'files' . DS
);
$this->set($params);
}
Run Code Online (Sandbox Code Playgroud)
这适用于一个文件.现在,对于2,3,4号链接,我是否需要创建3个不同的操作并在其中提供不同的文件名,或者是否有一种方法可以使用download()仅根据链接下载相应的文件已被点击?
这就是变量的用途.通用示例:
function download($fileId) {
$file = // find the file you want to serve based on $fileId
$pathInfo = pathinfo($file['path']);
$this->view = 'Media';
$params = array(
'id' => $file['name'],
'name' => $pathInfo['filename'],
'extension' => $pathInfo['extension'],
'download' => true,
'path' => APP . 'files' . DS
);
$this->set($params);
}
Run Code Online (Sandbox Code Playgroud)