アップロードサービス(PHP)用のAPIシステムを開発しています。現時点では、file_get_contents、freadなどから画像データをバイナリデータとして送信するオプション、または64ベースのシステムでエンコードするオプションをサポートしています。このbinary/base64データから、サービスにアップロードされている画像の拡張子の種類を特定しようとしています。base64の場合は、デコードしてから処理します。
現在、次のものがあります。
// We need to figure it out ourselves
if ($type === "")
{
// Let's see if it is a base64 file
$base64 = $this->checkBase64Encoded($file_data);
// We got a 64 based file or binary
$type = $base64 === TRUE ? "base64" : "binary";
}
if ($type == "binary")
{
$im = imagecreatefromstring($file_data);
}
ファイルを保存するための画像拡張子の種類を判別できるかどうかを確認したいと思います。あなたたちは何を提案しますか?getimagesize()の使用について何か読んだことがありますか?これについてはよくわかりませんが。ファイルを一時的に保存して処理し、名前を変更する方法はありませんか?
また、これを使用して、拡張子を確認する前に画像が有効な画像であることをテストする予定でしたが、getimagesize()関数の使用方法が正確にわかりませんでした。
try
{
// Get the width and height from the uploaded image
list($width, $height) = getimagesize($file['tmp_name']); // I'm not sure what to put here instead of $file['tmp_name']
}
catch (ErrorException $e)
{
// Ignore read errors
}
if (empty($width) OR empty($height))
{
// Cannot get image size, cannot validate
return FALSE;
}
ご不明な点がございましたら、お気軽にお問い合わせください。本当にありがとう :)