📅  最后修改于: 2023-12-03 14:45:10.629000             🧑  作者: Mango
在日常的 Web 开发中,经常会用到前端传输图片,而前端通常是将图片转为Base64 字符串。但是在后端处理时,我们往往需要将这个Base64字符串转为图片文件,以便我们进行其他的操作,如存储到服务器磁盘上或是再次转存到其他存储方式。
本文将为大家介绍如何使用 PHP 来实现将Base64图片转为文件的操作。示例代码如下:
/**
* Base64图片转为文件
*
* @param string $base64Data Base64图片字符串
* @param string $savePath 保存路径
* @return bool|string 成功返回 true,失败返回错误信息
*/
function base64ToImg($base64Data, $savePath)
{
if (preg_match('/^(data:\s*?image\/(\w+)\s*?;base64,)/', $base64Data, $matches)) {
$type = $matches[2];
$newBase64Data = str_replace($matches[1], '', $base64Data);
$fileData = base64_decode($newBase64Data);
if (file_put_contents($savePath, $fileData)) {
return true;
} else {
return '写入文件失败';
}
} else {
return 'Base64格式错误';
}
}
以上代码中,我们传入了两个参数:
$base64Data
:Base64图片字符串$savePath
:保存路径这个函数的作用就是将 $base64Data
中的图片数据解析出来,然后写入到 $savePath
文件中。如果该操作成功,则返回 true
,否则返回错误信息。
该函数的具体实现如下:
使用该函数非常简单,只需要调用该函数并传入 Base64 字符串和文件保存路径即可,以下是调用实例:
$base64Data = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAX...';
$savePath = '/path/to/new/image.png';
if (base64ToImg($base64Data, $savePath) === true) {
echo '保存成功!';
} else {
echo '保存失败!';
}
如果输出的是 保存成功!
则表示该操作成功,否则打印的是错误信息,我们需要检查一下输出信息以确认错误原因。
以上就是将Base64图片转为文件的 PHP 实现方式,如果您在开发过程中有类似的需求,可以使用该函数实现。