我正在尝试通过php curl post请求发送.text文件来获取其内容但没有成功。
重点是,如果我做var_dump($_FILES)
作为$result
$result
curl_exec($ch)
响应它显示我一个空数组,但如果我尝试与$_POST
:
array(
[uploaded_file] =>
[name] => 'absolute/path/to/file.txt'
[mime] => 'text/plain'
[postname] => 'file.txt'
)
如何将该文件作为$ _FILES变量传递?
这是我的curl send.php卷曲脚本:
$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。
你可以在这里找到更多信息:qazxsw poi