Cakephp-MeioUpload-如何下载上传的文件
我刚开始使用meioupload从cakephp上传我的文件,但是,我不确定如何编写下载代码 我尝试使用以下代码:Cakephp-MeioUpload-如何下载上传的文件,php,cakephp,cakephp-2.0,meio-upload,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文件?好吧,你要告诉你的应用程序的就是回显文件路径,而这正是它所做的。如果您只想在浏览器中打开文件,请改用重定向控制流,如
echo $file['Image']['dir'].$file['Image']['filename'];
然而,代码似乎是错误的。当它输出以下内容时:
uploads\image\filenamedb_fyp_2.txt
如何下载db_fyp2.txt文件?好吧,你要告诉你的应用程序的就是回显文件路径,而这正是它所做的。如果您只想在浏览器中打开文件,请改用
重定向
控制流,如:
class YourController extends AppController {
public function upload() {
// You upload logic here, followed by ...
$this->redirect($file['Image']['dir'].$file['Image']['filename']);
}
}
如果希望浏览器提供文件作为下载,请发送适当的内容配置(参见示例1)
尝试将您的根目录添加到您要打印此内容的位置。只有给它一个url,它才能工作。您在这里要做的主要工作是将其作为链接,而不是仅打印它。
谢谢你的回答,但是我已经知道了如何使用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);
$this->Html->link('Link Name',$path to that file);
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);