Загрузка файла с помощью PHP в imageshack с помощью cURL - PullRequest
0 голосов
/ 06 января 2012

Я пытаюсь загрузить файл в 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, загружаю файл, а затем, после завершения, я удаляю файл из временного расположения.

1 Ответ

2 голосов
/ 06 января 2012

Установите тип содержимого для типа файла.

Согласно инструкции, это должен быть массив или объект. Так вот

$arr = array('Content-type: text/plain') ;
curl_setopt ( $ch , CURL_HTTPHEADER , $arr );
...