2012-07-13 114 views
4

我想使用圖片上傳API。它通過POST接收Image文件併發送給我上傳的圖像的URI。但該API發送給我的錯誤如果內容類型的圖像不是一種圖像MIME類型(如圖像/ JPEG,圖像/ PNG,...)如何在php中修改上傳文件的內容類型?

但是,當我通過FTP上傳圖像文件並使用CURL作爲文件上傳,它向我發送錯誤,因爲該圖像的內容類型始終是'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 
     ) 
) 

遺憾的英語不好..感謝

回答

8

你可以在這樣的參數指定類型:

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

curl's man page

-F接受像-F「name = contents」這樣的參數。如果您希望從文件中讀取內容,請使用< @filename>作爲內容。當 指定一個文件,你還可以指定 追加文件內容類型「;類型=」

+0

謝謝,我真的很感激 – user1035957 2012-07-13 11:02:04

+1

您還可以設置自定義文件名:'「UploadedFile的」 =>「 @/files.jpg;類型=圖像/ JPEG;文件名= custom_name.jpg「' – Shaffe 2015-03-02 10:47:03

相關問題