2017-06-30 7 views
0

マニュアルから任意のwebserviceにPHPで構築コードが必要です。私はテスト環境を持っています。私が1つのイメージを投稿するとうまくいきます。それ以上の画像を投稿する必要がある場合、正常に動作しません。マニュアルではこれです:私は、サーバーに複数のファイル、最後のものだけアップロードをアップロードする必要がある場合cURLより多くのファイルをアップロードする

$sql[2] = "SELECT * FROM table WHERE car_id='".$car['id']."'"; 
$result[2] = mysql_query($sql[2]); 
if(mysql_num_rows($result[2])>0){ 
    $request = curl_init(); 
    curl_setopt($request, CURLOPT_CUSTOMREQUEST, 'PUT'); 
    curl_setopt($request, CURLOPT_PROXY, $proxy); 
    curl_setopt($request, CURLOPT_USERPWD, $user . ":" . $pass); 
    curl_setopt($request, CURLOPT_FOLLOWLOCATION, TRUE); 
    curl_setopt($request, CURLOPT_RETURNTRANSFER, TRUE); 
    while($img = mysql_fetch_array($result[2])){ 
     $file = '@inzerce/'.$img['nazev']; 
     $post['image'] = $file.";type=image/jpeg"; 
    } 
    curl_setopt($request, CURLOPT_POSTFIELDS, $post); 
    curl_setopt($request, CURLOPT_URL, $url); 
    curl_setopt($request, CURLOPT_HTTPHEADER, array('Host: services.mobile.de','Content-type: multipart/form-data; boundary=vjrLeiXjJaWiU0JzZkUPO1rMcE2HQ-n7XsSx', 'Accept: application/vnd.com.example.api+json')); 
    curl_setopt($request, CURLOPT_HEADER, TRUE); 
    curl_setopt($request, CURLINFO_HEADER_OUT, TRUE); 
    $result2 = curl_exec($request); 
    $info2 = curl_getinfo($request); 
    curl_close($request);  
} 

しかし:

curl -v -s -u username:password \ 
-H "Content-Type: multipart/form-data" \ 
-H "Accept: application/vnd.de.mobile.api+json" \ 
-F "[email protected];type=image/jpeg" \ 
-F "[email protected];type=image/jpeg" \ 
-XPUT 'https://www.example.com/seller-api/sellers/12/ads/217221/images' 

ここに1つのファイルのアップロードのために動作するコードです。配列に画像を挿入しようとすると($ post [$ id []] ['image'])、サーバはこのファイルを受け付けません。 $ post ['image']を$ post ['image'。$ img ['id']]に書き直そうとしましたが、どちらもうまくいきません。私はbashで試してみました。イメージ以外のものは動作しません。

誰でも手助けできますか?あなたは配列にそれを渡す必要があり

+1

あなたは '$ポスト[ 'イメージ'] [] = $ファイルを使用して試してみる。 ";タイプ=画像/ JPEG"。 ' –

+0

mobile.de APIの実例をここに掲載しました:https://stackoverflow.com/a/45281102/8306775 –

答えて

0

、ここでは簡単な例である

<?php 

//Initialise the cURL var 
$ch = curl_init(); 

//Get the response from cURL 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true); 

//Set the Url 
curl_setopt($ch, CURLOPT_URL, 'http://s/'); 

//Create a POST array with the file in it 
$postData = array(
    'testData[0]' => new \CURLFile(__FILE__), 
    'testData[1]' => new \CURLFile(__FILE__), 
); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); 

// Execute the request 
$response = curl_exec($ch); 

var_dump($response); 
関連する問題