簡體   English   中英

php curl發布$ _FILES問題

[英]php curl post $_FILES issue

我正在嘗試通過php curl post請求發送.txt文件以獲取其內容,但沒有成功。

關鍵是如果我將var_dump($_FILES)作為$result作為$resultcurl_exec($ch)響應,它將顯示一個空數組,但是如果我嘗試使用$_POST

array(
    [uploaded_file] => 
        [name] => 'absolute/path/to/file.txt'
        [mime] => 'text/plain'
        [postname] => 'file.txt'
)

如何將該文件作為$ _FILES變量傳遞?

這是我的curl send.php curl腳本:

$filedata = curl_file_create('../path/to/file.txt', 'text/plain', 'file.txt');

$array = array(
    'file' => $filedata
)

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://domain_name.com/url/to/script.php');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $array);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
$result = curl_exec($ch);
curl_close($ch);    

這是receive.php腳本:

if(file_exists($_FILES['uploaded_file']['tmp_name']) && is_uploaded_file($_FILES['uploaded_file']['tmp_name'])){
    $contents = file_get_contents($_FILES['uploaded_file']['tmp_name']);
    $data = explode('/',$contents);
}

但它永遠不會輸入if語句...

您無法通過cURL傳遞文件,以使其顯示在$_FILES變量中。

這是因為$_FILES變量用於使用HTML表單提交的上傳文件。

出於安全原因,必須先對文件進行加密,然后在接收方頁面中將其解密。 我建議您使用一種加密方法,讓您選擇加密的密鑰,例如sha1

您可以在這里找到更多信息: https : //stackoverflow.com/a/15200804/2342558

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM