2015-01-23 3 views
5

Я скопировал рабочий скрипт с моего PHP-сервера, но для целей разработки я хотел бы, чтобы он работал с моего локального сервера XAMPP.PHP - cURL файл с localhost не работает

локонов:

 $realpath_curl_file = realpath($curl_file); 

     $post = array(
       'recipient_number' => $recipient_number, 
       'user_id' => $user_id, 
       'up_file'=> "@$realpath_curl_file" 
     ); 

     //prepare data for cUrl 
     $target_url = "http://api.blankthis.com/curl/outgoing"; 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $target_url); 
     curl_setopt($ch, CURLOPT_POST,1); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 

     $result = curl_exec ($ch); 
     $err = curl_errno ($ch); 
     $errmsg = curl_error ($ch); 
     $header = curl_getinfo ($ch); 
     $httpCode = curl_getinfo ($ch, CURLINFO_HTTP_CODE); 
     print_r($result); 
     echo '------------------------'; 
     print_r($ch); 
     print_r($err); 
     print_r($errmsg); 
     print_r($header); 
     print_r($httpCode); 

Когда я делаю print_r ($ _ POST) и print_r ($ _ FILES), никакие файлы не быть переданы. Это мой результат:

POST:Array ([recipient_number] => 2394434455 [user_id] => 2 [up_file] => @C:\Users\Sharktek\AppData\Local\Temp\1422046077466.zip) 

FILES:Array () 

------------------------ 
Resource id 
#570 
Array ([url] => http://api.redfax.com/curl/outgoing [content_type] => text/html; charset=UTF-8 [http_code] => 200 [header_size] => 202 [request_size] => 196 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.499 [namelookup_time] => 0.125 [connect_time] => 0.218 [pretransfer_time] => 0.218 [size_upload] => 409 [size_download] => 168 [speed_download] => 336 [speed_upload] => 819 [download_content_length] => 168 [upload_content_length] => 409 [starttransfer_time] => 0.359 [redirect_time] => 0 [redirect_url] => [primary_ip] => 107.191.119.155 [certinfo] => Array () [primary_port] => 80 [local_ip] => 192.168.0.101 [ 

Кто-нибудь знает, почему мои файлы не загружаются через cURL? Как я уже сказал, это работает отлично My с моего сервера (не LOCALHOST)

  • XAMPP PHP Установка имеет Curl включен
  • Я отключил брандмауэр
+0

В какой версии PHP вы работаете? –

+0

В настоящее время используется PHP 5.3 как на сервере, так и на localhost –

+1

в порядке, просто убедитесь, что это не так: http: // stackoverflow.com/questions/25934128/curl-file-uploads-not-working-more-after-upgrade-from-php-5-5-to-5-6, вы можете проверить этот параметр, тем не менее, –

ответ

9

проверить вас php.ini, ваш апач конф файлы, перезагрузка, и повторите и повторять и повторять ...

или если вы с той же проблемой, как и я, и знаю, что завиток загружается, но только не выполняет внешние запросы, попробуйте добавить эту опцию в свой локон

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

Этот параметр определяет, проверяет, является ли локон подлинность сертификата партнёра

src

Проблема, вероятно, вызвано тем, что имеет сертификат вне в актуальном состоянии. Особенно, если вы разрабатываете Windows и используете XAMPP или некоторую сопоставимую службу, сертификаты по умолчанию не загружаются. В Linux это менее вероятно.

Для использования в целях производства вы должны устранить проблему с корнем, а не разрешать этой уязвимости влиять на вашу связь с сервером.

1

Если вы используете XAMPP вы проверили php.ini

в каталоге установки XAMPP открыть %XAMPP_HOME%/php/php.ini файл, то раскомментируйте следующие строки расширение = php_curl.dll

от

;extension=php_curl.dll 

к этому

extension=php_curl.dll 

если длл не существует проверить %XAMPP_HOME%/php/ext/php_curl.dll есть, если вы не можете получить его в Интернете и положить его там.

после того, как вы сделали все, что затем перезапустить Apache

это должно быть только держать на окнах с PHP и CURL