Tôi đang sử dụng cakephp 2.3.1CakePHP 2.3.x Sending Files và buộc tải về của một tập tin mp4
Tôi muốn buộc tải về một tập tin mp4 mỗi http://book.cakephp.org/2.0/en/controllers/request-response.html#cake-response-file
Trong 'xem' của tôi, tôi có đoạn mã sau đó đang tìm kiếm một cách chính xác cho tên tập tin, và việc tìm kiếm tên tập tin, và hiển thị liên kết tải xuống:
<?php $filename = APP . 'webroot/files/' . $dance['Dance']['id'] . '.mp4';
if (file_exists($filename)) {
echo $this->Html->link('DOWNLOAD', array('controller' => 'dances', 'action' => 'sendFile', $dance['Dance']['id']));
} else {
echo 'Coming soon: available April 16th';
}
?>
Khi người dùng nhấp vào liên kết tôi muốn buộc các download file mp4. Trong điều khiển của tôi, tôi có đoạn mã sau đó không làm việc:
public function sendFile($id) {
$file = $this->Attachment->getFile($id); //Note: I do not understand the 'Attachment' and the 'getFile($id)'
$this->response->file($file['webroot/files/'], array('download' => true, 'name' => 'Dance'));
//Return reponse object to prevent controller from trying to render a view
return $this->response;
}
Tôi không hiểu 'đính kèm' và 'getfile()'
Tôi nhận được lỗi sau: Lỗi : Gọi hàm thành viên getFile() trên một đối tượng không
Tôi đang làm gì sai và có bất kỳ tài liệu nào khác mà tôi có thể xem để hiểu điều này tốt hơn không?
Xin cảm ơn rất nhiều. Làm việc hoàn hảo. – user2133231
Tôi cũng có thể truyền vào một biến thứ hai trên chức năng công cộng để nó trông như thế này: 'public sendFile ($ id, $ dance_name) {' đó là freakn 'tuyệt vời vì nó cho phép tôi tự động tạo tên tập tin. – user2133231
Tuyệt vời, vui vì nó hoạt động. Bạn có thể chấp nhận anser vì vậy tôi nhận được một số danh tiếng? Chúc mừng :) –