2017-08-17 72 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; 
相關問題