使用CakePHP中的媒体视图下载文件 [英] Downloading files using media view in CakePHP

查看:121
本文介绍了使用CakePHP中的媒体视图下载文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想通过4个不同的链接下载4个不同的文件。我使用媒体视图下载文件,但我必须在控制器的下载功能硬编码文件名:

I want to download 4 different files through 4 different links. I am using the Media view to download the files, but I have to hardcode the file name in the download functions in the controller:

function download () { 
    $this->view = 'Media'; 
    $params = array( 
          'id' => 'example.zip', 
          'name' => 'example', 
          'download' => true, 
          'extension' => 'zip', 
          'path' => APP . 'files' . DS 
   ); 
   $this->set($params); 
} 

这适用于一个文件。现在,对于链接数2,3,4,我需要创建3种不同的动作,并给它们不同的文件名,或有一种方式,我可以使用download()只下载相应的文件,取决于哪个链接已被点击?

This works fine for one file. Now, for links number 2,3,4, do I need to create 3 different actions and give different file names in them, or is there a way in which I can use download() to only download the respective file depending on which link has been clicked?

推荐答案

这是变量的用途。通用示例:

That's what variables are for. Generic example:

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); 
} 

这篇关于使用CakePHP中的媒体视图下载文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆