cURL と PUT メソッドを使用してファイルをアップロードしようとしています。すでに fsockopen を使用して機能する機能がありますが、それを cURL に移行したいと考えています。
fsockopen を使用する関数は、ファイルの内容、ファイル名、および auth の資格情報を受け取り、要求を行います。
function put_file($content, $filename, $username, $pass)
{
$header = "PUT /upload?username=".urlencode(user_name)."&passwd=".urlencode($pass)."&filename=".urlencode($file_name)." HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($content) . "\r\n\r\n";
$fp = @fsockopen("ssl://URL", 443, $errno, $errstr, 30);
if(!$fp)
{
return "ERROR";
}
else
{
fputs ($fp, $header.$content);
while (!feof($fp))
{
$res .= fread ($fp, 1024);
}
fclose($fp);
}
}
その機能を cURL に移行しようとしていますが、ファイル システムに「実際の」ファイルを必要とせずに移行する方法がわかりません。私が知っている唯一の cURL オプションは CURLOPT_INFILE と CURLOPT_INFILESIZE ですが、ファイルがありません (そして、ディスクに書き込んでから開いたくない)。
fsockopen バージョンと同様に、ファイルの「コンテンツ」を送信する必要があります。これは cURL でどのように実現できますか?
よろしくお願いします。