简体   繁体   中英

PHP - cURL file from 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.

The 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 a print_r($_POST) and print_r($_FILES), no files are being transfered. 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 being uploaded via cURL? As I said, this works fine my from my server (non-localhost)

  • XAMPP PHP Installation has cURL enabled
  • I disabled my firewall

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

or if you're having the same problem as me, and know that curl is loaded, but just not executing external requests, try adding this option to your curl

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

This option determines whether curl verifies the authenticity of the peer's certificate

src

The problem is likely caused by having an out-to-date certificate. Especially if you're developing on Windows and use XAMPP or some comparable service, the certificates are not loaded by default. On Linux this is less likely to be required.

For production use, you should fix the root problem instead of allowing this vulnerability to affect your server communication.

If you're using XAMPP have you checked the php.ini

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

from

;extension=php_curl.dll

to this

extension=php_curl.dll

if that dll doesn't exist check whether %XAMPP_HOME%/php/ext/php_curl.dll is there if not you can get it online and put it there.

after you're done all that then restart apache

this should be the only hold up on windows with php and cURL

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM