Cakephp - MeioUpload - Как скачивать загруженные файлы - PullRequest
0 голосов
/ 17 февраля 2012

Я только начал использовать meioupload для загрузки своих файлов с cakephp, однако я не уверен, как мне кодировать загрузку.

Я попытался использовать следующий код:

echo $file['Image']['dir'].$file['Image']['filename'];

, однако, похоже, что код неправильный.как это выдает следующее:

uploads\image\filenamedb_fyp_2.txt 

Как мне загрузить файл db_fyp2.txt?

Ответы [ 3 ]

0 голосов
/ 17 февраля 2012

Попробуйте добавить свой root туда, где вы печатаете это. Только если он получил URL, он будет работать. И основной митаке, который вы здесь делаете, вы должны сделать его ссылкой вместо * 1003.* просто распечатать его.

$this->Html->link('Link Name',$path to that file);
0 голосов
/ 18 февраля 2012

Спасибо за ответ, но я уже узнал, как скачивать файлы, используя mediaview для CakePHP.

В любом случае, чтобы ответить на мой собственный вопрос, чтобы загрузить файл с различным расширением, можно использовать следующий код.

Использование Media View для 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);
0 голосов
/ 17 февраля 2012

Ну, все, что вы говорите своему приложению, это повторить путь к файлу, и это именно то, что он делает.Если вы просто хотите, чтобы файл открывался в браузере, используйте вместо этого поток управления redirect, например:

class YourController extends AppController {
    public function upload() {
        // You upload logic here, followed by ...
        $this->redirect($file['Image']['dir'].$file['Image']['filename']);
    }
}

Если вы хотите, чтобы браузер предлагал файл для загрузки, отправьте соответствующий Content-Disposition header (см. Пример № 1).

header('Content-Disposition: attachment; filename="' . $file['Image']['filename'] . '"');
readfile($file['Image']['dir'].$file['Image']['filename']);
...