PHP - cURL file with localhost not working

I copied a working script from my PHP server, but for development purposes, I would like it to work from my local XAMPP server.

cURL:

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

When I do print_r ($ _ POST) and print_r ($ _ FILES), the files are not transferred. This is my result:

 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 [ 

Does anyone know why my files are not uploaded via cURL? As I said, this works fine from my server (non-localhost)

  • XAMPP PHP cURL Settings Included
  • I turned off the firewall
+5
source share
2 answers

check php.ini, your apache conf files, restart and repeat, repeat and repeat ...

or if you have the same problem as mine and know that the curl is loaded, but just does not fulfill external requests, try adding this option to your curl

 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

This parameter determines whether curl authenticates peer certificate.

src

The problem is most likely caused by the presence of an outdated certificate. Especially if you are developing Windows and using XAMPP or some comparable service, certificates are not loaded by default. On Linux, this is most likely required.

For production use, you must fix the root problem, and not allow this vulnerability to affect your connection to the server.

+9
source

If you are using XAMPP, you have checked php.ini

in the XAMPP installation directory, open the %XAMPP_HOME%/php/php.ini , then uncomment the following line extension = php_curl.dll

of

 ;extension=php_curl.dll 

to that

 extension=php_curl.dll 

if this dll doesn’t exist, check if %XAMPP_HOME%/php/ext/php_curl.dll , if not, you can get it online and put it there.

after everything is done and then restart apache

this should be the only delay on windows with php and cURL

+1
source

Source: https://habr.com/ru/post/1211792/


All Articles