2013-12-20 2 views
0

У меня есть фреймворк, который ест до php://input, прежде чем сабред может добраться до него на PUT.Sabredav без php: // input (Kohana)

Есть ли способ вызова setBody() в Sabre\HTTP\Request, так что я могу передать это из моей структуры (http://kohanaframework.org), так что getBody() не пытается получить его от пустогоphp://input?

Я хочу попытаться избежать взлома Sabre\DAV\Server и/или Sabre\HTTP\Request, но не уверен, какой лучший подход будет.

Framework "обернут" код здесь (реализация server.php в примере Sabredav)

https://github.com/chrisgo/kohana-sabredav/blob/master/classes/Kohana/Controller/Webdav.php


Оригинальный вопрос: SabreDAV + Nginx + PUT (creates 0 byte file)

ответ

1

Чистейший решение, как представляется, создание плагин для перехвата метода PUT и установки тела обратно туда, где ожидается sabredav

public function httpPutInterceptor($method, $uri) { 
    $this->server->httpRequest->setBody($this->body); 
} 

Полный модуль: https://github.com/chrisgo/kohana-sabredav

... теперь я просто должен понять, почему Nginx является возвращающей 405 на двоичный файл PUT против текстового файла PUT (правильного поведения, передает его на PHP)

 Смежные вопросы

  • Нет связанных вопросов^_^