php curl post $ _FILES问题

时间:2018-01-17 15:34:57

标签: php curl

我试图通过php curl post请求发送.txt文件来获取其内容但没有成功。

关键在于,如果我var_dump($_FILES)$result $result curl_exec($ch)响应,它会向我显示一个空数组,但如果我尝试使用{{1} }}:

$_POST

如何将该文件作为$ _FILES变量传递?

这是我的curl send.php curl脚本:

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

这是receive.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);    

但它永远不会进入if语句......

1 个答案:

答案 0 :(得分:0)

您无法通过cURL传递该文件,使其显示在$_FILES变量中。

这是因为$_FILES变量用于使用HTML表单提交的上传文件。

出于安全原因,必须先对文件进行加密,然后在接收方页面中对其进行解密。 我建议您使用加密方法,让您选择加密密钥,例如sha1

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