我刚开始使用meioupload从cakephp上传我的文件,但是,我不知道如何编码下载。
我尝试使用以下代码:
echo $file['Image']['dir'].$file['Image']['filename'];
然而,似乎代码是错误的。因为它输出以下内容:
uploads\image\filenamedb_fyp_2.txt
如何下载文件db_fyp2.txt?
答案 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);