我有一个 PHP 前端项目和 Node JS API。
我需要将文件发送到 API,但我必须使用 cURL,因为表单发送到 PHP,而 PHP 通过 cURL 发送到 Node JS。
我尝试了很多不同的方法,但我无法让它发挥作用。
在我正在使用的 API 上multer
处理上传,一切正常。如果我将操作直接设置为 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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)