APIは、実装しようとしていますが、コマンドを含むXMLファイルのアップロードが必要です。 これを行うための簡単な方法は、ファイルの内容を生成し、ファイルシステムに書き込んで、curlでWebサーバーにアップロードすることです。PHPを使ってPOST(マルチパート/フォームデータ)を使ってテキストをアップロードします。
私が達成しようとしているのは、phpの一時プロトコルハンドラを使用して書き込み部分をスキップすることです。サンプルコードは次のとおりです。
<?php
$fp = fopen("php://temp", "r+");
$request = 'some xml here';
fwrite($fp, $request);
rewind($fp);
$input_stat = fstat($fp);
$size = $input_stat['size'];
$url = "http://example.com/script.php";
$ch = curl_init();
$filename = $_POST[cert_file] ;
$data['file'] = "@xml.xml";
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_setopt($ch,CURLOPT_INFILESIZE,$size);
curl_setopt($ch,CURLOPT_INFILE,$fp);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($ch);
$error = curl_error($ch);
echo 'result:'.$result."\n";
echo 'error:'.$error."\n";
curl_close($ch);
?>
残念ながら、これは動作しません。 Tcpdumpは、要求が送信されていないことを示します。 更新:私が得る結果は次のとおりです。
result:
error:failed creating formpost data
誰でもPHPでオンザフライでのファイルとしてテキストをアップロードする方法、手掛かりを持っていますか?
解決方法をお探しですか?私はまったく同じ問題を抱えています。すでにバッファーに入っているファイルの内容をアップロードしようとしています。私はまたファイルとしてアップロードするためにファイルに書き戻したくない。 –
私は同じ問題を抱えています:( – Geltrude
私はまだこれのための解決策がありません。 – AquilaX