PHP cURL将文件上载到Node JS服务器

PHP cURL将文件上载到Node JS服务器,php,curl,Php,Curl,我有一个PHP前端项目和节点JSAPI 我需要向API发送一个文件,但我必须使用cURL,因为表单send to PHP和PHP通过cURL发送到Node JS 我尝试了很多不同的方法,但都没能奏效 在我的API上,我使用multer处理上传,一切正常。如果我将action direct设置为API,我可以从Postman或直接从表单发送文件 这是我最后一次尝试的代码: $url = $this->url; $filename = $_FILES['logo']['name']; $fil

我有一个PHP前端项目和节点JSAPI

我需要向API发送一个文件,但我必须使用cURL,因为表单send to PHP和PHP通过cURL发送到Node JS

我尝试了很多不同的方法,但都没能奏效

在我的API上,我使用
multer
处理上传,一切正常。如果我将action direct设置为API,我可以从Postman或直接从表单发送文件

这是我最后一次尝试的代码:

$url = $this->url;
$filename = $_FILES['logo']['name'];
$filedata = $_FILES['logo']['tmp_name'];
$filesize = $_FILES['logo']['size'];

if ($filedata != '') {
    echo $filename;
    $headers = array("Content-Type:multipart/form-data"); // cURL headers for file uploading
    $postfields = array("filedata" => "@$filedata", "filename" => $filename);
    $ch = curl_init();
    $options = array(
        CURLOPT_URL => $url,
        CURLOPT_HEADER => true,
        CURLOPT_POST => 1,
        CURLOPT_HTTPHEADER => $headers,
        CURLOPT_POSTFIELDS => $postfields,
        CURLOPT_INFILESIZE => $filesize,
        CURLOPT_RETURNTRANSFER => true
    ); // cURL options
    curl_setopt_array($ch, $options);
    curl_exec($ch);
    if(!curl_errno($ch)) {
        $info = curl_getinfo($ch);
        if ($info['http_code'] == 200)
            $errmsg = "File uploaded successfully";
    }
    else {
        $errmsg = curl_error($ch);
    }
    curl_close($ch);
}

什么都不会发生……

经过多次尝试,我终于成功了

这是我的代码:

$file = $_FILES[$inputName]['tmp_name'];

$mimetype = mime_content_type($file);

$cFile = new CURLFile($file, $mimetype);

// add file with $_POST data
$this->data[$inputName] = $cFile;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$this->url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $this->header);

$result = curl_exec($ch);
curl_close($ch);
打开PHP错误并发布(或删除)您的
else
部分