我正在为我的上传服务开发一个API系统(在PHP中)。目前,我支持从file_get_contents,fread等发送图像数据作为二进制数据的选项,或者使用基于64的系统对其进行编码。我试图从这个二进制/ 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;
}
如果我不清楚,请随时询问任何澄清。非常感谢:)。