将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

回到顶部