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

use*_*957 5 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);
?>
Run Code Online (Sandbox Code Playgroud)

这是结果:

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

抱歉英语不好..谢谢

com*_*857 8

您可以在参数中指定类型,如下所示:

$fileUploadPostParams = array(
    "uploadedfile" => "@/files.jpg;type=image/jpeg"
);
Run Code Online (Sandbox Code Playgroud)

curl的手册页:

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