2017-08-17 13 views
1

他のポストデータとともにアップロードされたファイルを、curlを使用してリモートAPIにアップロードしようとしています。これまで行ってきたことcurlを使用してリモートapiにファイルをアップロード

$_POST['certf'] = '@'.$_FILES['certf']['tmp_name'].';filename=' . $_FILES['certf']['name']; 

$url = "example.com/app_handler.php?key=key"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_HTTPHEADER, "Content-Type:multipart/form-data"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST); 
$result = curl_exec($ch); 
curl_close($ch); 
echo $result; 

私はちょうど$ _FILESを印刷しましたが、それは空です。私がインターネット上で見つけたすべてのチュートリアルは$ _FILESにアクセスすることができ、そこから通常のファイルアップロードとして使用することができます。何が私はここで恋しい?

答えて

1

CurlFile

$filePath= $_FILES['file1']['tmp_name']; 
$fileType= $_FILES['file1']['type']; 
$fileName= $_FILES['file1']['name']; 
$post_data['certf'] = new \CurlFile($filePath, $fileType, $fileName); 

$url = "example.com/app_handler.php?key=key"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_HTTPHEADER, "Content-Type:multipart/form-data"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 
$result = curl_exec($ch); 
curl_close($ch); 
echo $result; 
でファイルを送信するようにしてください
関連する問題