5

画像アップロードAPIを使用したい。POSTを介して画像ファイルを受信し、アップロードした画像のURIを送信します。しかし、そのAPIは、Content-Typeofimageが一種のimagemimetype(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"
);

カールのマニュアルページから:

-Fは、-F "name=contents"などのパラメーターを受け入れます。ファイルからコンテンツを読み取る場合は、コンテンツとして<@filename>を使用します。ファイルを指定するときに、「; type =」を追加して、ファイルのコンテンツタイプを指定することもできます。

于 2012-07-13T11:00:12.997 に答える