Cakephp - MeioUpload - 如何下载上传的文件

时间:2012-02-17 02:34:11

标签: php cakephp cakephp-2.0 meio-upload

我刚开始使用meioupload从cakephp上传我的文件,但是,我不知道如何编码下载。

我尝试使用以下代码:

echo $file['Image']['dir'].$file['Image']['filename'];
然而,似乎代码是错误的。因为它输出以下内容:

uploads\image\filenamedb_fyp_2.txt 

如何下​​载文件db_fyp2.txt?

3 个答案:

答案 0 :(得分:0)

好吧,你告诉你的应用程序就是回显文件路径,而这正是它正在做的事情。如果您只想在浏览器中打开文件,请使用redirect控制流,例如:

class YourController extends AppController {
    public function upload() {
        // You upload logic here, followed by ...
        $this->redirect($file['Image']['dir'].$file['Image']['filename']);
    }
}

如果您希望浏览器提供下载文件,请发送相应的内容处置header(参见示例#1)。

header('Content-Disposition: attachment; filename="' . $file['Image']['filename'] . '"');
readfile($file['Image']['dir'].$file['Image']['filename']);

答案 1 :(得分:0)

尝试将 root 添加到您打印此处的位置。只有在给定网址的情况下它才会起作用。您在这里做的主要做法是您必须将其设为链接而不是< strong> 只是打印它。

$this->Html->link('Link Name',$path to that file);

答案 2 :(得分:0)

感谢您的回答,但我已经找到了如何使用cakephp的mediaview下载文件。

无论如何,要回答我自己的问题,要下载具有各种扩展名的文件,可以使用以下代码。

使用cakephp的媒体视图 - 在控制器中

public function download($id){



     $this->viewClass = 'Media';
     $this->autoLayout = false;


    $file = $this->Image->findById($id); 
     $link = $file['Image']['dir'];



     $params = array(
     'id' => $file['Image']['filename'],
     'name' => $file['Image']['filename'],
     'download' => true,
     'mimeType' => $file['Image']['mimetype'], 
     'extension' => array('pdf','zip','txt'),
     'path' => $link.DS
     );

    $this->set($params);