2015-01-23 17 views
5

Ho copiato uno script funzionante dal mio server PHP, ma a fini di sviluppo, mi piacerebbe che funzionasse dal mio server XAMPP locale.PHP - file cURL da localhost non funzionante

il riccio:

 $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); 

Quando faccio un print_r ($ _ POST) e print_r ($ _ FILES), nessun file vengono trasferiti. Questo è il mio risultato:

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 [ 

Qualcuno sa perché i miei file non vengono caricati tramite cURL? Come ho detto, questo funziona bene il mio dal mio server (non localhost)

  • XAMPP installazione di PHP ha permesso cURL
  • ho disattivato il mio firewall
+0

Quale versione PHP sei? –

+0

Attualmente si utilizza PHP 5.3 sia sul server che sul localhost –

+1

ok, solo assicurandosi che non lo sia: http: // StackOverflow.it/questions/25934128/arricciare-file-uploads-non-funzionante-più-dopo-aggiornamento-da-php-5-5-a-5-6, è possibile verificare comunque l'impostazione –

risposta

9

di controllare php.ini, i file apache conf, riavvio, e ripetere e ripetere e ripetere ...

o se stai avendo lo stesso problema come me, e so che riccio viene caricato, ma non solo l'esecuzione di richieste esterne, prova ad aggiungere questa opzione per la vostra arricciatura

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

Questa opzione determina se ricciolo verifica l'autenticità del certificato del peer

src

Il problema è probabilmente causato da avere un certificato di out-to-date. Soprattutto se si sta sviluppando su Windows e si utilizza XAMPP o un servizio analogo, i certificati non vengono caricati per impostazione predefinita. Su Linux è meno probabile che sia richiesto.

Per uso di produzione, è necessario correggere il problema di root anziché consentire a questa vulnerabilità di influire sulle comunicazioni del server.

1

Se stai usando XAMPP Avete controllato il php.ini

nella directory di installazione di XAMPP aprono %XAMPP_HOME%/php/php.ini file di rimuovere il commento dalla seguente riga extension = php_curl.dll

da

;extension=php_curl.dll 

a questo

extension=php_curl.dll 

se quella dll non esiste verificare se %XAMPP_HOME%/php/ext/php_curl.dll è lì, se non è possibile ottenere on-line e messo lì.

dopo aver finito tutto quello che poi riavviare Apache

questo dovrebbe essere l'unico reggono sulle finestre con PHP e cURL