5

我想使用图像上传 API。它通过 POST 接收图像文件并将我上传的图像的 URI 发送给我。但是该 API 向我发送错误如果图像的 Content-Type 不是一种图像 mime 类型(例如 image/jpeg、image/png,...)

但是当我通过 FTP 上传图像文件并使用 CURL 作为文件上传时,它会向我发送错误,因为该图像的 Content-Type 始终是“application/octet-stream”。我想修改这个 mime 类型。有没有办法修改这个?

这是代码:

<?php
$fileUploadPostParams = Array(
    "uploadedfile" => "@/files.jpg"
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://uix.kr/widget/parameter.php");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fileUploadPostParams);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($ch);
?>

结果如下:

...
===== file ===== 
Array
(
    [uploadedfile] => Array
        (
            [name] => 2312.jpg
            [type] => application/octet-stream
            ^^^^ I want to change here...
            [tmp_name] => /tmp/php5bigGV
            [error] => 0
            [size] => 383441
        )
)

抱歉英语不好..谢谢

4

1 回答 1

8

您可以像这样在参数中指定类型:

$fileUploadPostParams = array(
    "uploadedfile" => "@/files.jpg;type=image/jpeg"
);

curl 的手册页

-F 接受像 -F "name=contents" 这样的参数。如果要从文件中读取内容,请使用 <@filename> 作为内容。指定文件时,还可以通过附加 ';type=' 来指定文件内容类型

于 2012-07-13T11:00:12.997 回答