如何在php中修改上传文件的内容类型?

时间:2012-07-13 10:49:13

标签: php curl mime-types

我想使用Image Upload API。它通过POST接收图像文件,并向我发送我上传的图像的URI。但该API发送错误如果Content-Type of image不是一种图像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
        )
)

抱歉英文不好..谢谢

1 个答案:

答案 0 :(得分:8)

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

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

来自curl's man page

  

-F接受-F“name = contents”之类的参数。如果要从文件中读取内容,请使用&lt; @ filename&gt;作为内容。什么时候   指定文件,您还可以指定文件内容类型   附加'; type ='