【问题标题】:CURL PHP send files file extension errorCURL PHP 发送文件文件扩展名错误
【发布时间】: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


【解决方案1】:

您使用的是什么 API?

没有任何具体信息,我只能大胆猜测:API 的响应说

我们目前仅支持 .pdf、.jpg、.png、.bmp 和 .gif 文件扩展名。

但是,在您的问题中,您提到文件扩展名

都是 JPG 或 PDF。

也许这里的问题是您的文件具有大写扩展名,例如.JPG 和 .PDF,但 API 只接受小写扩展,例如.jpg 和 .pdf。一些文件系统(例如 Windows 上的 FAT 或 NTFS)不关心文件名的大小写,但其他文件系统(例如 Linux 上的 ext4)确实关心。因此,在将文件发送到 API 之前,请尝试将所有扩展名更改为仅包含小写字母。

另一个猜测是文件格式,即文件的实际内容,不是 API 支持的文件格式之一。例如,有人可以获取一个文本文件foo.txt 并将其重命名为foo.jpg。这将处理扩展名,但文件的内容仍然是文本而不是 JPEG 图像。也许 API 也会检查这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    相关资源
    最近更新 更多