我已经在我的应用程序相对地址上安排了文件上传:webroot / files
现在我需要强制下载上传的文件。经过一些谷歌搜索并尝试this post的大部分建议后,我发现正确的方法是使用cakephps Media Views
我有什么:
我想做什么:
我尝试了很多变体:
//the retrieving of data after debug looks fine//
$this->loadModel('File');
$files = $this->File->find('list', array(
'conditions'=>array('File.record_id'=>$record_id),
'fields' => array('File.Name', 'File.Url');
))
//actual display of url
foreach($files as $file_name => $file_url) {
echo $this->Html->link($file_name, $file_url);
}
结果链接看起来与James Revillini presented
的方式完全相同这是我的实际问题
由于这个问题没有完全解决,我认为这不仅对我有用,而且对于那些正在寻找这个问题的快速解决方案的人来说,可以快速演示Media-views如何工作。在制作动态下载功能后,我不知道在哪里移动:
public function download($name, $path) {
$this->viewClass = 'Media';
$params = array(
'id' => $name,
'name' => $name,
'download' => true,
'path' => $path
);
$this->set($params);
}
答案 0 :(得分:1)
将资源的模态对话框中的链接指向download()
函数。
将Record.id
传递给该功能。在其中找到该文件并自动渲染它。
它应该有用。