Я использую Cake 2.3 У меня есть приложение, которое позволяет пользователям добавлять продукты и загружать файлы, связанные с этим продуктом. Я столкнулся с проблемой, с использованием объектов ответа, как показано здесь: http://book.cakephp.org/2.0/en/controllers/request-response.htmlМаршрутизация объекта ответа CakePHP?
public function download(){
$path = WWW_ROOT.$product['Product']['filename']; //gets the path-to-file
$this->response->file($path, array('download' => true, 'name' => 'Filename'));
return $this->response; //as per the docs
}
И на мой взгляд:
<?php echo $this->Html->link('Download', array('controller' => 'products', 'action' => 'download', $product['Product']['filename']));?>
Так вот моя проблема: Файл находится под LOCALHOST/приложение/вебсервера /invoices/example.pdf, однако ссылка на скачивание файла вызывает localhost/products/sendFile/invoices/example.pdf.
Когда я отлаживаю $ path, он дает мне правильный URL-адрес файла, поэтому я оставляю для вывода, что функция загрузки беспорядочна.
Я могу получить доступ к файлу непосредственно в браузере по URL-адресу localhost/app/webroot/invoices/example.pdf.
Почему функция загрузки не маршрутизируется на правильный URL-адрес файла для загрузки? Любая помощь будет принята с благодарностью.
Я попробовал ваше решение, еще не повезло. Он по-прежнему пытается перейти к URL, а не запускать загрузку. – Cody
Проверьте свои журналы отладки/ошибок. Вы должны найти там больше информации. – noslone