Как скачать файл с RESTFUL cakePHP 2.3

Я использую CakePHP 2.3, и у меня есть два приложения на 2 разных серверах. Мне необходимо скачать файл с первого сервера, используя REST. Я сделал свои приложения RestFul и настроил маршруты. Я могу публиковать, получать, помещать и удалять, но не могу сделать это, чтобы загрузить файл.
Ниже приведен пример кода для получения

 public function view($id) {
$object = $this->Imodel->find('first', array('conditions' => array('Imodel.id' => $id), 'contain' => array()));
$this->set(array(
'object' => $object,
'_serialize' => array('object')
));
}

Я был бы признателен за любую помощь, чтобы загрузить файл с REST, в соответствии с архитектурой Restful, которая у меня уже есть.

редактировать
Через некоторое время я наконец получил его на работу. В случае, если кто-то столкнется с той же проблемой, все дело было в понимании cakePHP HttpSocket лучше.
Итак, сначала на сервере, где зарегистрирован веб-сервис (откуда мы скачиваем файл), ниже моя функция; его ответ — файл, как объяснено (Вот)

public function getpdffile($id = NULL){
$filepath = APP. 'Files' .DS. 'file.pdf'; //path to the file of interest
$this->response->file($filepath);
return $this->response;
}

Поскольку файл не был общедоступным (не в webroot), мне пришлось использовать MediaView. Затем после установки этого я бы получить его для загрузки с помощью HttpSocket как показано ниже:

public function download($id = NULL, $fileMine = 'pdf', $fileName = 'file', $download = TRUE){
$httpSocket = new HttpSocket();
$filepath = APP. 'Files'. DS. 'myfile.pdf';
$file = fopen($filepath, 'w');
$httpSocket->setContentResource($file);
$link = MAIN_PROJECT_SERVER."rest_internal_applications/getpdffile/".$id.".json";
$httpSocket->get($link);
fclose($file);
$this->response->file($filepath);
return $this->response;
}

Я скопировал файл в папку «App» на моем сервере и отобразил его в виде.
Надеюсь, это кому-нибудь поможет 🙂

0

Решение

На сервере, который вызывает файл для загрузки:

$file = file_get_contents(urlwhereyoudownload) ;

И на сервере, где зарегистрирован веб-сервис:

header('Content-type: $mimetypeoffile');
header('Content-Disposition: attachment; filename=".$fileName."');
readfile("$pathtofile");exit;
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector