タイプに応じて画像に拡張子を付け、完全に新しい名前を作成する必要があります。ファイルをサーバーに送信する前に拡張子を取得できますか?
$_POST['image']
画像のURLです。$new_name
スイッチの実行中に追加することになっています。
$image = $_POST['image'];
$ch = curl_init($image);
curl_setopt($ch, CURLOPT_HEADER, 0);
$imagedata = curl_exec($ch);
list($width, $height, $type) = getimagesize($filename);
switch ($type) {
case 1: ....... //Give the filename a .gif extension and so on for every filetype
}
$fp = fopen('../images/' . $new_name, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_close($ch);
fclose($fp);
!見つけた答え! (自分の質問に間違って答えている場合は申し訳ありません(単に質問を「編集」するという意味で)、間違っている場合は正しく行う方法についてコメントしてください;)
cURL 関数を 2 回実行するだけで済みますが、名前は異なります。最初のものは単にファイルに関する情報を取得し、2 番目のものはファイルを保存します。$new_name
$image = $_POST['image'];
$ch = curl_init($image); curl_setopt($ch, CURLOPT_HEADER, 0); $imagedata = curl_exec($ch); $info = curl_getinfo($ch, CURLINFO_CONTENT_TYPE); curl_close($ch);
if($info == "image/jpeg") //画像に適切な拡張子を与えるコードを実行しています...
$cf = curl_init($image); $fp = fopen('../images/' . "image.jpg", 'wb'); curl_setopt($cf, CURLOPT_FILE, $fp); curl_exec($cf); curl_close($cf); fclose($fp);