【发布时间】:2016-05-04 18:35:16
【问题描述】:
我试图通过 cURL 将两个文件发送到 API。它似乎工作,除了 API 回来并说文件类型是不允许的。回应是:
string(189)
{
"StatusId": -1,
"Success": false,
"ReturnObject": null,
"Message": "Please check the file format of the uploaded files. We currently only support .pdf .jpg, .png, .bmp and .gif file extensions.
}
如您所见,API JSON 响应意味着它可以看到有文件但只是认为它们没有扩展名。我查看了文件的绝对 URL 和文件扩展名,它们都是 JPG 或 PDF。有什么想法吗?
这是我的 cURL 代码:
// send a file
curl_setopt($request, CURLOPT_POST, true);
curl_setopt(
$request,
CURLOPT_POSTFIELDS,
array(
'ClientID' => $client,
'file' =>
'@'.realpath(__DIR__ . '/..').'/webroot/img/uploads/documents/'.$_FILES['image']['name'],
'file2' =>
'@'.realpath(__DIR__ . '/..').'/webroot/img/uploads/documents/'.$_FILES['image1']['name']
));
curl_setopt(
$request, CURLOPT_HTTPHEADER, array(
"authentication: XXXXXXXXXXXXX",
"cache-control: no-cache",
"content-type: multipart/form-data;"));
curl_setopt(
$request, CURLOPT_CUSTOMREQUEST, "POST");
// output the response
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
var_dump(curl_exec($request));
// close the session
curl_close($request);
【问题讨论】:
-
如果你回显图像的路径,你会得到什么?路径是否正确,文件是否实际存在于该位置?
-
是的,检查并仔细检查。如果文件是空白的,那么 API 会返回一个空字符串错误,所以那里有一个文件......但它认为它的类型错误。
-
.pdf 文件不支持 api - 并且可能是错误的原因,并且使用了哪个版本的 php?
标签: php file curl file-transfer