Скрипт заливки картинок

Тема в разделе "PHP", создана пользователем LEXAlForpostl, 22 фев 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    Здравствуйте.
    Подскажите как написать скрипт, который бы заливал картинку по адресу images\1.jpg, при этом при заливке передавал параметр "Оптимизировать картинку" и записывал получившийся урл в переменную $url.
     
  2. ivashka

    ivashka

    Регистр.:
    16 май 2007
    Сообщения:
    151
    Симпатии:
    15
    Не до конца понял что нужно.
    Какие условия?
    Самый простой вариант, это лить через пост, а дальше обрабатывать на php и перемещать уже куда надо.

    Вобщем вот:

    Добавь только проверку на изображения.
     
  3. Flock

    Flock Постоялец

    Регистр.:
    16 июн 2007
    Сообщения:
    142
    Симпатии:
    44
    Форма:
    Код:
    <form enctype="multipart/form-data" action="upload.php" method="post">
     <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
     Отправить этот файл: <input name="userfile" type="file" />
     <input type="submit" value="Load Image" />
    </form>
    
    Скрипт:
    PHP:
    Обработчик upload.php :
    <?php

    $images 
    '/images/';
    $name_file basename($_FILES['userfile']['name']);

    $uploaddir $_SERVER['DOCUMENT_ROOT'].$images;
    $uploadfile $uploaddir $name_file;

    if (
    move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    $url $_SERVER['HTTP_HOST']. $images.$name_file;
    } else {
        
    print_r($_FILES);
    }

    ?>
    Примерно так, оптимизацию можно посмотреть в любом движке.
     
  4. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    Прошу прощения, забыл самое главное сказать.
    Скрипт, который бы заливал картинку на сервер radikal.ru или ему подобные :)

    Ещё раз, извините)
     
  5. Dj_StelS

    Dj_StelS

    Регистр.:
    9 янв 2009
    Сообщения:
    349
    Симпатии:
    79
    Смотри в сторону curl
     
  6. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    Так там скрипт, который обрабатывает фотографии написан на асп.
     
  7. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    Так тебе-то все равно, на чем ТАМ скрипт. Тебе со своей стороны главное правильно HTTP POST отправить, а там уже пусть ловят как хотят.

    Для людей не знакомых с curl имхо самым простым путем остается прикрутить какой-нибудь humanemulator, заодно и универсально будет, и вообще мороки минимум.

    Включи там запись скрипта, залей одну картинку вручную, а потом получившийся скрипт подправь, чтоб имена картинок брал откуда тебе там надо.
     
  8. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    PHP:

    <?

    $upload = 'image.gif';
    $file = fopen($upload,'r'); 

    $postdata = array( 'upload_hidd' => 'yes',
                       'f' => "@".$file,// пробовал тут "@".$upload
                       'j' => 'yes');

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://radikal.ru/action.aspx');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    //curl_setopt($curl,CURLOPT_INFILE,$file);
    $result=curl_exec($ch); 
    curl_close($ch);
     
    echo $result;

    ?>
    Не работает.
    Ничего на экран не выводит.
     
  9. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    <?


    $postdata = array( 'upload' => 'yes',
    'im'=>'7',
    'JQ'=>'85',
    'URLF' => "http://forum.ru-board.com/board/temp/serventus/1.jpg",
    'j' => 'yes');

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://radikal.ru/action.aspx');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    //curl_setopt($curl,CURLOPT_INFILE,$file);
    $result=curl_exec($ch);
    curl_close($ch);


    preg_match("!img=(.*?)\]!i", $result, $out);
    $result = $out[0];

    ?>

    Вот написал.
    Нигде вывода на экран - нет, а мне почему-то выводит $result
    Т.е страницу радикальную, со ссылкой на картинку.


    И плюс к этому не парсит ссылку.
     
  10. Casper_R

    Casper_R Создатель

    Регистр.:
    3 май 2007
    Сообщения:
    87
    Симпатии:
    25
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);

    переделай в

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    еще бы он у тебя парсил с таким паттерном :) "!img=(.*?)\]#i"

    вот: preg_match_all('#img="([^"]+)"]#Usi', $result, $out);
     
Статус темы:
Закрыта.