2016-11-24 3 views
0

Я следил за Cookies Cookies для отправки файлов (http://book.cakephp.org/3.0/en/controllers/request-response.html#sending-files), но у меня возникла странная проблема. PDF, DOC и другие исполняемые файлы работают нормально. Но когда я пытаюсь загрузить/показать изображение (JPG или PNG), файл развращает себя.CakePHP 3 image download corrupt

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

Я не мог найти ничего подобного в Интернете, связанном с пирожным, поэтому я надеюсь, что вы можете мне помочь!

Код ниже моя скачать действие

public function arquivo($id) { 
    $file = $this->Arquivos->get($id); 

    $this->response->file($file['filename'], ['download' => true]); 
    // Return response object to prevent controller from trying to render 
    // a view. 

    return $this->response; 
} 

заголовки отклика:

Accept-Диапазоны: байты

Cache-Control: нет-магазин, нет-кэша, должен-revalidate, post-check = 0, pre-check = 0

Подключение: Keep-Alive

Content-Length: 121000

Content-Type: изображение/JPEG

Дата: Чт, 24 ноября 2016 16:17:49 GMT

Expires: Thu, 19 Nov 1981 08: 52:00 GMT

Keep-Alive: Тайм-аут = 5, макс = 100

Pragma: нет кэша

Сервер: Apache/2.4.10 (Ubuntu)

+0

ли вы проверили '$ файла [» filename '] '- полный путь к вашему файлу? –

+0

Да, я зарегистрировал его, и он правильный. Кроме того, он отправляет файл с тем же размером и именем. И, как я уже сказал, файлы PDF работают –

+0

Вы должны отлаживать файл MIME-типа для изображений. –

ответ

0

Проверьте правильность пути к файлу и MIME-типы.

public function arquivo($id) { 
    $file = $this->Arquivos->get($id); 
    $this->response->file(
     $file['filename'], #Check $file['filename'] is full path of your download file 
     [ 
      'download' => true, 
      'name' => 'Your_Download_File_Name_Here' 
     ] 
    ); 
    return $this->response; 
} 

Пример:

Ваш $file['filename'] переменная должна быть /path/to/your/file.jpg

Также проверьте правильность MIME TYPES от CakePHP 3 Sending or Downloading Files