Мой сайт загружает файл с другого сайта, а затем отправляет этот файл клиенту, но не отправляет его.CakePHP MediaView не работает
//Downloads file from veeva to server
public function get_veeva($id = null)
{
$this->autoRender = false;
$asset = $this->Asset->findById($id);
$vault = $asset['VeevaVault'];
App::import('Vendor', 'phpVeeva', array('file' => 'veeva' . DS . 'veeva.php'));
$veeva = new phpVeeva();
$file = $veeva->getVeevaAsset($vault['veeva_id'], $vault['title']);
$this->send_veeva($file);
}
//Sends downloaded file to client
public function send_veeva($file)
{
$filename = $file['filename'];
$ext = $file['ext'];
$path = APP . 'tmp/';
if (file_exists($path . $filename . '.' . $ext)) {
echo 'Downloading ' . $filename . '.' . $ext . '...';
//echos /var/www/<sitename>/app/tmp/<filename>.<ext>
$this->viewClass = 'Media';
$params = array(
'id' => sprintf("%s.%s", $filename, $ext),
'name' => sprintf("%s.%s", $filename, $ext),
'download' => true,
'ext' => $ext,
'mimeType' => array(
'doc' => 'application/msword',
'pdf' => 'application/pdf',
'ppt' => 'application/vnd.ms-powerpoint'
),
'path' => APP . "tmp" . DS
);
$this->set($params);
}
else {
echo $filename . '.' . $ext . ' does not exist at ' . $path;
}
}
файл существует там, где его предполагается и страница отголоски говорят его загрузку, но ни одно окно загрузки никогда не выскочит. Я пробовал с и без mimeType, тот же результат. Моя версия Cake не поддерживает использование ответа Cake для отправки файлов.
Edit - Добавлен HTTP Headers
Глядя на заголовки, следующие вещи выскочить:
В заголовке ответа, длина содержание 0 и тип контента текст/HTML, когда я пытаясь отправить файл .doc, поэтому я думаю, что это должно быть приложение/msword.
В заголовке запроса принимаются текст/html, application/xhtml + xml, application/xml.
Вот заголовки:
Ответ:
HTTP/1.1 200 OK
Дата: Чт, 20 февраля 2014 16:32:26 GMT
Сервер: Apache/2,2 +0,15 (Red Hat)
X-Powered-By: PHP/5.3.3
Conten т-Length: 0
Подключение: закрыть
Content-Type: Текст/HTML; кодировка = UTF-8
Запрос:
GET/активы/get_veeva/530566d7-80c4-4ad7-b815-20600a64cb32 HTTP/1.1
Хост: guru-dev.selfip.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv: 27.0) Gecko/20100101 Firefox/27.0
Принять: текст/html, application/xhtml + xml, application/xml; q = 0.9, /; q = 0,8
Accept-Language: EN-US, еп, д = 0,5
Accept-Encoding: GZIP, выкачать
Referer: http://guru-dev.selfip.com/
Cookie: toolbarDisplay = скрыть; CakePHP = edh8riumsm2kb61ka4dih3v6c1
соединения: держать-жив
У кого-нибудь есть идеи? Похоже, что он не отправляет правильный HTTP-заголовок. –