I am trying to upload some files to a web server via PUT.
I am using the server side Phil Sturgeon REST library.
A client is a PHP application that uses curl to generate requests.
...
curl_setopt($ch, CURLOPT_PUT, true);
curl_setopt($ch,CURLOPT_INFILE,$fp);
curl_setopt($ch,CURLOPT_INFILESIZE,$fsize);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$headarray = array();
if ($api_key)
$headarray[] = 'X-API-KEY:'.$api_key;
$headarray[] = "Content-Type: application/octet-stream";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headarray);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_exec($ch);
...
Data is accepted. However, when I look at $ this-> put () on the server side, I get an array that looks like my input file received parsing. I would like the whole file to be available as a single line, as input.
I tried using fopen("php://input", "r");instead, but it is empty. Presumably, this has already been consumed by the REST library.
I did not write a PUT request before using curl, so there may be something wrong with this.
Is there an alternative to $ this-> put () that will give me the original input, not an array.
, , , , , , CURLOPT_INFILE? , , php.