将Base64字符串转换为图像文件?
我正在尝试将base64图像字符串转换为图像文件。
使用以下代码将其转换为图像文件:
function base64_to_jpeg( $base64_string, $output_file ) { $ifp = fopen( $output_file, "wb" );
fwrite( $ifp, base64_decode( $base64_string) );
fclose( $ifp );
return( $output_file );
}
$image = base64_to_jpeg( $my_base64_string, 'tmp.jpg' );
但是我遇到了错误invalid image
,这是怎么了?
回答:
问题是data:image/png;base64,
编码内容中包含该内容。当base64函数对其进行解码时,这将导致无效的图像数据。像这样在解码字符串之前先删除函数中的数据。
function base64_to_jpeg($base64_string, $output_file) { // open the output file for writing
$ifp = fopen( $output_file, 'wb' );
// split the string on commas
// $data[ 0 ] == "data:image/png;base64"
// $data[ 1 ] == <actual base64 string>
$data = explode( ',', $base64_string );
// we could add validation here with ensuring count( $data ) > 1
fwrite( $ifp, base64_decode( $data[ 1 ] ) );
// clean up the file resource
fclose( $ifp );
return $output_file;
}
以上是 将Base64字符串转换为图像文件? 的全部内容, 来源链接: utcz.com/qa/411644.html