使用PHP curl上传文件

时间:2016-08-18 08:47:27

标签: php curl file-upload

对于我们的客户,我必须制作一个邮件备份系统来备份发送的所有内容(主题,正文,附件,标题......)

但我仍然坚持通过curl上传文件。

到目前为止,这是我的代码:

$filesBackup = array('api_key' => 'xxx', 'files' => array());

                    foreach ($attachment as $att) {

                        $filesBackup['files'][] = new \CURLFile($att[0]);


                    $request = curl_init('http://xxx/webhooks/uploadtos3.php');
                    curl_setopt($request, CURLOPT_POST, true);
                    curl_setopt($request, CURLOPT_SAFE_UPLOAD, false);
                    curl_setopt(
                        $request,
                        CURLOPT_POSTFIELDS, http_build_query($filesBackup));
                    curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
                    curl_exec($request);
                    curl_close($request);

这里的问题是文件路径($att[0])如下:" http://xxx/uploads/zonnepanelen/file.pdf"

所以我在uploadtos3.php上收到的唯一一件事是这个数组:

array(3) {
      ["name"]=>
      string(89) "http://xxx/uploads/zonnepanelen/file.pdf"
      ["mime"]=>
      string(0) ""
      ["postname"]=>
      string(0) ""
    }

有没有人可以帮我解决这个问题?

非常感谢提前!

1 个答案:

答案 0 :(得分:0)

使用以下

更新代码
$filesBackup['files'][]  should contain below keys?

array(
      'file' =>
          '@'            . $_FILES['file']['tmp_name']
          . ';filename=' . $_FILES['file']['name']
          . ';type='     . $_FILES['file']['type']
    )