POST-файл через PHP curl

Возможный дубликат:
загрузить файл на сервер без использования формы?

Я могу успешно выполнить это в командной строке:

curl -v -H "a-token: myTokenValue" -H "content-type: application/xml" -X POST --data-binary @/tmp/myfile_2_3.xml -A "My Wonderful Agent" http://example.com/url

Как это получить в PHP?

UPDATE: использование POST с загрузкой файлов 🙂

 $fileContents = file_get_contents("/tmp/myfile_2_3.xml"); $defaults = array( CURLOPT_CUSTOMREQUEST => "post", CURLOPT_HEADER => 1, CURLOPT_URL => "http://example.com/url", CURLOPT_FRESH_CONNECT => 1, CURLOPT_RETURNTRANSFER => 1, CURLOPT_FORBID_REUSE => 1, CURLOPT_TIMEOUT => 4, CURLOPT_POSTFIELDS => $fileContents, CURLOPT_HTTPHEADER => array("a-token" => "myTokenValue", "Content-Type" => "application/xml"), ); $ch = curl_init(); curl_setopt_array($ch, ($options + $defaults)); if( ! $result = curl_exec($ch)) { trigger_error(curl_error($ch)); } curl_close($ch); 

Передайте его exec() .

Посмотрите, как использовать его без дополнительных накладных расходов file_get_contents, которые были опубликованы здесь .