0

ここに画像の説明を入力

通常の HTML フォームを使用して、画像を URL にアップロードすると、アップロードして正常に返されます。ただし、PHPでこれを行うと

      $bytes = download_attachment($timeline_item_id, $attachment);
      $image = imagecreatefromstring($bytes);
        imagejpeg($image, 'tempfile.jpg');

        $files[] = '@tempfile.jpg;filename=tempfile.jpg;type=image/jpeg';
      $post = array('authenticationToken' => 'AUTH_TOKEN','media-content'=>@"tempfile.jpg");
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,"https://api-ssl-5.tenthbit.com/send/media");
        curl_setopt($ch, CURLOPT_POST,1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
        $result=curl_exec ($ch);
        curl_close ($ch);

うまくいきません....何かアイデアはありますか?imagecreatefromstring が正しいかどうかはわかりません。ただし、有効な画像を含む tempfile.jpg ファイルが作成されました。 $result は、FORM からの JSON 応答ではなく「true」です

ref のフォーム:

<form action="https://api-ssl-5.tenthbit.com/send/media" method="post"
enctype="multipart/form-data">
    <input type="text" name="authenticationToken" id="file" value="AUTH">
<input type="file" name="media-content" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
4

1 に答える 1

0

あなたのアプローチは問題ありません。しかし、あなたはあなたが得ているエラーについて言及していませんでした。

古いバージョンの PHP を使用していて、'@ImageName' をサポートしていないと思います。PHP バージョン 5.5.9 を使用している場合。また、画像パスは正しいと思います。したがって、以下のコード ブロックから助けを得ることができます。

$headers = array("Content-Type:multipart/form-data"); 
$file = new CurlFile('image_path', 'mime_type', 'image_name');
$post = array('authenticationToken' => 'AUTH_TOKEN','file_array'=>$file);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://api-ssl-5.tenthbit.com/send/media");
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_INFILESIZE, $filesize);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec ($ch);
curl_close ($ch);
于 2014-07-23T05:43:01.583 に答える