cakePHP中的媒体视图

时间:2013-08-08 06:06:02

标签: cakephp

我在使用MediaView的cakePHP框架工作中实现了文件下载功能   我通过URL传递一个参数的原因,该参数与文件一起显示   名字我需要删除URL参数,我试过但失败了请帮我。

我下载文件的代码

$fileExtn = explode('.', $this->contentItem['file_path']);
        $url = $this->contentItem['file_path'];
        $urlArr = explode('/', $url);           
        $fileExtn = end($fileExtn);
        if(in_array($fileExtn, $this->MEDIAMAP)) {
            $fileExtn = str_replace('.', '', $fileExtn);
            if(!empty($urlArr)) {
                $fileName = end($urlArr);
                $fileNameWOExtn = explode('.', $fileName);
                //$fileNameWOExtn = $fileName[0];
                $fileNameWOExtn = $fileName;
                unset($urlArr[count($urlArr)-1]);
                $url = implode(DS, $urlArr);
            }
            $this->view = 'Media';
            $params = array(
                    'id' => $fileName,
                    'name' => $fileNameWOExtn,
                    'download' => false,
                    'extension' => $fileExtn,  // must be lower case
                    'path' => APP . 'views' . DS . 'static'. $url .DS  // don't forget terminal 'DS'                        
            );
            $this->set($params);

我的网址如下:/uploads/leave_policy_leave_policy_tasks_v1.3.xlsx

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式查找最后一个.字符,例如

preg_match("/(.*?)(\.)(\w*)$/", $filepath, $path_parts);

您还希望利用CakePHP附带的FolderFile对象的功能。