0

私は次のコードを持っています.APIを使用して1つの画像をImgurにアップロードするのに完全に機能します:

$client_id = $myClientId;
    $file = file_get_contents($_FILES["file"]["tmp_name"]);

    $url = 'https://api.imgur.com/3/image.json';
    $headers = array("Authorization: Client-ID $client_id");
    $pvars = array('image' => base64_encode($file));

    $curl = curl_init();

    curl_setopt_array($curl, array(
       CURLOPT_URL=> $url,
       CURLOPT_TIMEOUT => 30,
       CURLOPT_POST => 1,
       CURLOPT_RETURNTRANSFER => 1,
       CURLOPT_HTTPHEADER => $headers,
       CURLOPT_POSTFIELDS => $pvars
    ));

    $json_returned = curl_exec($curl); // blank response

    $json = json_decode($json_returned, true);

    curl_close ($curl); 

ただし、一度に複数の画像をアップロードする必要があります。クライアント側では、ユーザーは複数の<input type="file" />フィールドを持ちます。複数の画像が配列の形でサーバーに送信されたときに複数の画像のアップロードを処理するために、このコードをどこでどのように変更する必要があるかを理解するのに完全に行き詰まっています。誰にもアイデアはありますか?

4

1 に答える 1

3

マークアップを次のように変更します。

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Send these files:<br />
  <input name="file[]" type="file" multiple="multiple" /><br />
  <input type="submit" value="Send files" />
</form>

これで、次のように$_FILESa を使用して配列をループできます。foreach

foreach ($_FILES['file']['tmp_name'] as $index => $tmpName) {
    if( !empty( $tmpName ) && is_uploaded_file( $tmpName ) )
    {
        // $tmpName is the file
        // code for sending the image to imgur
    }
}
于 2013-11-14T12:44:42.287 に答える