xandeadx.ru Блог музицирующего веб-девелопера

PHP → Загрузка картинок на ImageShack.us

Опубликовано в

Код загружает файл image.jpg, находящийся в одной директории со скриптом, на сервер ImageShack.us, и выводит прямую ссылку на загруженное изображение:

$filename = dirname(__FILE__) . '/image.jpg';
 
$postData = array(
    'fileupload' => '@' . $filename,
    'key'        => '*********', // ключ полученный на странице http://stream.imageshack.us/xmlapi/
    'xml'        => 'yes',
);
 
$ch = curl_init('http://www.imageshack.us/upload_api.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
$result = curl_exec($ch);
curl_close($ch);
 
$xml = simplexml_load_string($result);
 
if (!$xml)
{
    echo 'Error';
}
else if (isset($xml->error))
{
    echo 'Error: ' . $xml->error;
}
else
{
    echo 'Image URL: ' . $xml->links->image_link;
}

Подробнее в документации.

Похожие записи

Комментарии RSS

Спасибо за скрипт! А есть такой же для какого-нибудь российского картинкообменника? типа radikal или fastpic?

насколько знаю, у radikal и fastpic нет своего api, поэтому придётся эмулировать браузер с помощью curl и заниматься парсингом

интересно теоретически: если все картинки скажем галереи держать на ImageShack.us а не на своем сайте - это скажется на производительности сайта?

если картинок ОЧЕНЬ много, то можно сэкономить на запросах к серверу и использовать ImageShack в качестве CDN, но это не лучший вариант - файлы от туда когда-нибудь удалят.

Не работает, пишет
Wrong file type detected for file image.jpg:application/octet-stream

Всё перепробовал, никак не получается убрать эту ошибку.

сервер не правильно настроен, можно попробовать указать тип вручную:

switch ($fileExt) {
    case 'jpg' : $mime = 'image/jpeg'; break;
    case 'jpeg': $mime = 'image/jpeg'; break;
    case 'gif' : $mime = 'image/gif';  break;
    case 'png' : $mime = 'image/png';  break;
    default    : $mime = 'image/jpg';  break;
}
 
$postData = array(
    'fileupload' => '@' . $filename . ';type=' . $mime,
    // ...
);

А сколько ресайзов картинки хранит у себя Imageshack? И как менять ссылку для их просмотра?

подумываю просто на интернет магазин вбахать такой скрипт. Но чет сервер медленно фотки выдает.

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании