cURL PHP

Discussion in 'PHP' started by Foster, 18 Sep 2011.

  1. Foster

    Foster Elder - Старейшина

    Joined:
    14 Jul 2005
    Messages:
    79
    Likes Received:
    10
    Reputations:
    2
    При помощи cURL в PHP скрипте находящемся на моем хостинге, загружаю изображение на удаленный сайт. И все бы ничего но не смотря на расширение файла(его расширение *.jpg) тип передаваемого файла всегда, при любых расширениях файла: application/octet-stream из за чего удаленный сервер на который я загружаю файл с помощью моего скрипта не дает загрузить файл т.к. тип файла: application/octet-stream а не image/jpeg как и должно быть при передачи файла с расширением *.jpg На локальной машине скрипт работает и правильно определяет тип передаваемого файла, а вот на хостинге не верно определяет тип. Можно ли как то вручную изменить тип?
     
  2. Чакэ

    Чакэ Elder - Старейшина

    Joined:
    15 Aug 2010
    Messages:
    260
    Likes Received:
    66
    Reputations:
    62
    так заголовки передавай же. ида покажи сайт.
     
  3. Foster

    Foster Elder - Старейшина

    Joined:
    14 Jul 2005
    Messages:
    79
    Likes Received:
    10
    Reputations:
    2
    Можно пример?

    Сайт _http://pornizer.com/video/add/ только зарегистрироваться нужно. Там внизу есть:
    Оформление и скриншоты:
    Обложка *:
    Задник:
    Скриншот:
     
  4. Чакэ

    Чакэ Elder - Старейшина

    Joined:
    15 Aug 2010
    Messages:
    260
    Likes Received:
    66
    Reputations:
    62
    код показывай. чтобы помочь приходится тянуть с вас инфу..
     
  5. Foster

    Foster Elder - Старейшина

    Joined:
    14 Jul 2005
    Messages:
    79
    Likes Received:
    10
    Reputations:
    2
    PHP:
    <?
                        
    $curl curl_init();
                        
    curl_setopt($curlCURLOPT_URL'http://pornizer.com/video/add/');
                        
    curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
                        
    curl_setopt($curlCURLOPT_POST1);
                        
    curl_setopt($curlCURLOPT_HEADER1);
                        
    curl_setopt($curlCURLOPT_COOKIEFILE$dir."pornizer.txt");
                        
    curl_setopt($curlCURLOPT_ENCODING,'gzip,deflate');
                        
    curl_setopt($curlCURLOPT_POSTFIELDS, array( 'title' => 'nazvanie',
                                                      
    'release' => '0',
                                                      
    'studio' => '',
                                                      
    'director' => '',
                                                      
    'starring' => 'UNKNOWN+ACTRESS',
                                                      
    'description' => 'opisanie',
                                                      
    'service[]' => 'filesonic',
                                                      
    'links[]' => 'filesonic_links',
                                                      
    'service[]' => 'wupload',
                                                      
    'links[]' => 'wupload_links',
                                                      
    'service[]' => 'uploaded',
                                                      
    'links[]' => 'ul_links',
                                                      
    'password' => '',
                                                      
    'back_cover' => '',
                                                      
    'screenshot' => '',
                                                      
    'add' => '+%D0%97%D0%B0%D0%B3%D1%80%D1%83%D0%B6%D0%B0%D0%B5%D1%82%D1%81%D1%8F...+',
                                                      
    'category' => 'short_videos',
                                                      
    'genre[hd_dvd]' => 'on',
                                                          
    'front_cover' => "@".'D:\xxx\1.GIF' ));
                                        echo  
    $res curl_exec($curl);
    ?>
     
  6. Foster

    Foster Elder - Старейшина

    Joined:
    14 Jul 2005
    Messages:
    79
    Likes Received:
    10
    Reputations:
    2
    вопрос все ещё актуален
     
  7. ZeV$

    ZeV$ Elder - Старейшина

    Joined:
    7 Feb 2006
    Messages:
    40
    Likes Received:
    10
    Reputations:
    3
    а почему в примере gif?
    попробуй воспользоваться вот этой информацией (http://php.net/manual/ru/function.curl-setopt.php):

    CURLOPT_POSTFIELDS Все передаваемые данные для передачи в HTTP POST-запросе. Для передачи файла, укажите перед именем файла @, а также используйте полный путь к файлу. Тип файла также может быть указан с помощью формата ';type=mimetype', следующим за именем файла. Этот параметр может быть передан как в качестве url-закодированной строки, наподобие 'para1=val1&para2=val2&...', так и в виде массива, ключами которого будут имена полей, а значениями - их содержимое. Если value является массивом, заголовок Content-Type будет установлен в значение multipart/form-data. Начиная с версии PHP 5.2.0, файлы, передаваемые в этот параметр, с префиксом @, должны быть в виде массива.
     
    1 person likes this.
  8. Foster

    Foster Elder - Старейшина

    Joined:
    14 Jul 2005
    Messages:
    79
    Likes Received:
    10
    Reputations:
    2

    PHP:
    $curl curl_init();
                        
    curl_setopt($curlCURLOPT_URL'http://pornizer.com/video/add/');
                        
    curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
                        
    curl_setopt($curlCURLOPT_POST1);
                        
    curl_setopt($curlCURLOPT_HEADER1);
                        
    curl_setopt($curlCURLOPT_COOKIEFILE$dir."pornizer.txt");
                        
    curl_setopt($curlCURLOPT_ENCODING,'gzip,deflate');
                        
    curl_setopt($curlCURLOPT_POSTFIELDS, array( 'title' => 'nazvanie',
                                                      
    'release' => '0',
                                                      
    'studio' => '',
                                                      
    'director' => '',
                                                      
    'starring' => 'UNKNOWN+ACTRESS',
                                                      
    'description' => 'opisanie',
                                                      
    'service[]' => 'filesonic',
                                                      
    'links[]' => 'filesonic_links',
                                                      
    'service[]' => 'wupload',
                                                      
    'links[]' => 'wupload_links',
                                                      
    'service[]' => 'uploaded',
                                                      
    'links[]' => 'ul_links',
                                                      
    'password' => '',
                                                      
    'back_cover' => '',
                                                      
    'screenshot' => '',
                                                      
    'add' => '+%D0%97%D0%B0%D0%B3%D1%80%D1%83%D0%B6%D0%B0%D0%B5%D1%82%D1%81%D1%8F...+',
                                                      
    'category' => 'short_videos',
                                                      
    'genre[hd_dvd]' => 'on',
                                                      
    'front_cover' => '@D:\xxx\1.gif;type=image/gif'));
                                        echo  
    $res curl_exec($curl);
    Почему то вместо вывода получаю пустую белую страничку. В чем может быть ошибка?
     
  9. Foster

    Foster Elder - Старейшина

    Joined:
    14 Jul 2005
    Messages:
    79
    Likes Received:
    10
    Reputations:
    2
    всем спасибо. решение найдено
     
  10. ZeV$

    ZeV$ Elder - Старейшина

    Joined:
    7 Feb 2006
    Messages:
    40
    Likes Received:
    10
    Reputations:
    3
    напиши, пожалуйста, сюда в чем было дело, чтобы люди потом могли найти тут полезную информацию )
     
  11. devzorg

    devzorg New Member

    Joined:
    22 Sep 2011
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Все очень просто
    нужно добавить заголовок Content-type: image/jpeg

    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: image/jpeg'));
     
  12. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    devzorg по очевидным причинам ваше предложение работать не будет

    Правильный ответ дан тут: https://forum.antichat.ru/showpost.php?p=2836526&postcount=7
     
    _________________________