[英]PHP - cURL file from localhost not working
我從我的PHP服務器復制了一個工作腳本,但出於開發目的,我希望它可以在我的本地XAMPP服務器上運行。
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);
當我執行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上傳? 正如我所說,這可以很好地從我的服務器(非本地主機)
檢查你的php.ini,你的apache conf文件,重啟,重復,重復並重復...
或者如果您遇到與我相同的問題,並且知道已加載curl,但只是沒有執行外部請求,請嘗試將此選項添加到您的卷曲中
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
此選項確定curl是否驗證對等證書的真實性
問題可能是由於擁有最新的證書。 特別是如果您在Windows上進行開發並使用XAMPP或某些類似服務,則默認情況下不會加載證書。 在Linux上,這不太可能被要求。
對於生產用途,您應該修復根問題,而不是允許此漏洞影響您的服務器通信。
如果您正在使用XAMPP,請檢查php.ini
在XAMPP安裝目錄中打開%XAMPP_HOME%/php/php.ini
文件然后取消注釋以下行extension = php_curl.dll
從
;extension=php_curl.dll
對此
extension=php_curl.dll
如果該dll不存在,請檢查%XAMPP_HOME%/php/ext/php_curl.dll
是否存在,如果沒有,您可以將其聯機並將其放在那里。
完成所有操作后,重新啟動apache
這應該是用php和cURL唯一支持windows
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.