0

次のスクリプトを使用して、ファイルを imageshack にアップロードしようとしています。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://post.imageshack.us/');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_POST, true);
$post = array(
    'fileupload'=> '@../../resources/images/cancel.png',
    'optsize' => 'resample',
    'rembar' => '1'
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$response = curl_exec($ch);
curl_close($ch);

echo $response;

ただし、imageshack から次のエラーが発生します。

Wrong file type detected for file cancel.png:application/octet-stream.

それはなぜですか、どうすれば修正できますか? 前もって感謝します!

編集: JPGまたはGIFを使用すると機能しますが(アニメーション化されたものでも、Imageshackはそれらを非アニメーション化しますが、最初のフレームのみを使用すると思います)、PNGでは機能しません。

編集2: 修正方法を見つけました。前述のように、JPG と GIF のみを受け入れます。そのため、アップロードする必要がある画像の場所を取得し、末尾.jpgが .

4

1 に答える 1

2

Content-type をファイルのタイプに設定します。

マニュアルによると、配列またはオブジェクトでなければなりません。だからここに

$arr = array('Content-type: text/plain') ;
curl_setopt ( $ch , CURL_HTTPHEADER , $arr );
于 2012-01-06T15:48:07.950 に答える