0

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

我尝试使用以下代码:

echo $file['Image']['dir'].$file['Image']['filename'];

但是,似乎代码是错误的。因为它输出以下内容:

uploads\image\filenamedb_fyp_2.txt 

如何下载文件 db_fyp2.txt?

4

3 回答 3

0

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

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

如果您希望浏览器提供文件作为下载,请发送相应的 Content-Disposition标头(参见示例 #1)。

header('Content-Disposition: attachment; filename="' . $file['Image']['filename'] . '"');
readfile($file['Image']['dir'].$file['Image']['filename']);
于 2012-02-17T08:53:36.517 回答
0

尝试将根目录添加到要打印的位置。只有给定了 url,它才会起作用。而您在这里所做的主要 mitake 是您必须将其设为链接,而不仅仅是打印它。

$this->Html->link('Link Name',$path to that file);
于 2012-02-17T11:25:02.497 回答
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);
于 2012-02-18T01:33:09.653 回答