我从追加中获取 Base64 字符串,然后用 PHP 对其进行解码并将其保存在数据库中。
该字符串可以是任何文件 .pdf、.img、.docx、.zip、.ppt、.docx 等。
我的 base64 字符串不包含 mime 类型,例如“data:application/pdf;base64”部分。所以我需要获取 base64 的 mime 类型。
有什么办法可以用PHP解决这个问题吗?
目前,我正在使用此代码,它对于图像和 pdf 工作得很好。
$file = base64_decode($formData['image'], true)
$mineType = $this->getMimeType($file);
public function getBytesFromHexString($hexdata)
{
for ($count = 0; $count < strlen($hexdata); $count += 2)
$bytes[] = chr(hexdec(substr($hexdata, $count, 2)));
return implode($bytes);
}
public function getMimeType($imagedata)
{
$imagemimetypes = array(
"jpg" => "FFD8",
"png" => "89504E470D0A1A0A",
"gif" => "474946",
"bmp" => "424D",
"tiff" => "4949",
"pdf" => "25504446",
"docx"=> "504B0304",
"doc" => "D0CF11E0A1",
"xlsx"=> "504B030414000600",
"xls" => "D0CF11E0A1B11AE1"
);
foreach ($imagemimetypes as $mime => $hexbytes) {
$bytes = $this->getBytesFromHexString($hexbytes);
if (substr($imagedata, 0, strlen($bytes)) == $bytes){
return $mime;
}
}
return false;
}
慕妹3242003