Я строю REST
Конечная точка API, которая выглядит следующим образом: (В Laravel 4.2
)
PUT /upload/{name}
Здесь Route
в Routes.php, который может маршрутизировать PUT
запрос.
Route::put('/upload/{name}', 'UploadController@upload')
->where('name', '[a-zA-Z0-9]+');
Теперь содержимое этого запроса должно содержать файл для сохранения. Я использую следующее curl
просьба сделать предварительную проверку конечной точки.
curl -X PUT localhost/upload/filename -F [email protected]
И вот как данные читаются в PHP
:
$blob = file_get_contents('php://input', 'r' );
Это не дает мне фактический файл, а дает весь HTTP-запрос в виде необработанного текста (ожидалось, что). Я даже пытался parse_str()
но не сработало.
Какой способ использовать curl
в обоих CLI
а также PHP
отправлять запросы PUT и получать их впоследствии в PHP
? Я всегда боролся с этим одним типом запроса.
Как правильно сказал @lukasgeiter в комментариях выше:
Вот решение:
use Request; // needed in Laravel 5
$request = Request::instance(); // fetch the request instance
$content = $request->getContent(); // get the raw content
Я проверил длину содержимого, и он соответствует файлу, который был PUT
,
Других решений пока нет …