PHP保存Base64图片base64_decode的问题 文件打不开的问题

PHP对Base64的支持非常好,有内置的base64_encode与base64_decode负责图片的Base64编码与解码。

编码上,只要将图片流读取到,而后使用base64_encode进行进行编码即可得到。

而解码就略微麻烦一点,究其原因在于把图片编码成base64字符串后,编码内会加入这些字符 data:image/png;base64,本来是用于base64进行识别的。但是如果直接放到php里用base64_decode函数解码会导致最终保存的图片文件格式损坏,而解决方法就是先去掉这一串字符:


1

2

3

$base64_stringexplode(‘,‘$base64_string); //截取data:image/png;base64, 这个逗号后的字符

$database64_decode($base64_string[1]);  //对截取后的字符使用base64_decode进行解码

file_put_contents($url$data); //写入文件并保存

原文地址:https://www.cnblogs.com/winyh/p/8297162.html

时间: 2024-08-01 02:23:13

PHP保存Base64图片base64_decode的问题 文件打不开的问题的相关文章

PHP保存Base64图片base64_decode的问题

PHP对Base64的支持非常好,有内置的base64_encode与base64_decode负责图片的Base64编码与解码. 编码上,只要将图片流读取到,而后使用base64_encode进行进行编码即可得到. 而解码就略微麻烦一点,究其原因在于把图片编码成base64字符串后,编码内会加入这些字符 data:image/png;base64,本来是用于base64进行识别的.但是如果直接放到php里用base64_decode函数解码会导致最终保存的图片文件格式损坏,而解决方法就是先去掉

PHP保存Base64图片

PHP对Base64的支持非常好,有内置的base64_encode与base64_decode负责图片的Base64编码与解码. 编码上,只要将图片流读取到,而后使用base64_encode进行进行编码即可得到. 而解码就略微麻烦一点,究其原因在于把图片编码成base64字符串后,编码内会加入这些字符 data:image/png;base64,本来是用于base64进行识别的.但是如果直接放到php里用base64_decode函数解码会导致最终保存的图片文件格式损坏,而解决方法就是先去掉

PHP将Base64图片转换为本地图片并保存

本文出至:新太潮流网络博客 /** * [将Base64图片转换为本地图片并保存] * @E-mial [email protected] * @TIME 2017-04-07 * @WEB http://blog.iinu.com.cn * @param [Base64] $base64_image_content [要保存的Base64] * @param [目录] $path [要保存的路径] */ function base64_image_content($base64_image_c

php 图片base64编码生成dataurl和保存为图片

<?php header('Content-type:text/html;charset=utf-8'); //读取图片文件,转换成base64编码格式 $image_file = 'aaa.jpg'; $image_info = getimagesize($image_file); // $base64_image_content = "data:{$image_info['mime']};base64," . chunk_split(base64_encode(file_ge

读取视屏文件,保存帧图片为ppm文件

ffmpeg跟sdl的学习过程:一.版本信息:ffmpeg-3.0.2.tar.bz2SDL2-2.0.4.tar.gz二.编译过程:1.ffmgeg的编译:./configure --enable-shared --disable-yasm --prefix=/usr/local/ffmpegmakemake install 2.sdl的编译:./configure --prefix=/usr/local/sdlmakemake install 3.系统环境配置:查看/etc/ld.so.co

DataFormats.Dib 保存为图片文件

var data = System.Windows.Forms.Clipboard.GetDataObject(); using (var ms = data.GetData(System.Windows.Forms.DataFormats.Dib) as MemoryStream) { byte[] buff = new byte[ms.Capacity]; if (ms.CanRead) { ms.Read(buff, 0, ms.Capacity); } MemoryStream ms2

.Net之使用Jquery Ajax通过FormData对象异步提交图片文件到服务端保存并返回保存的图片路径

前言: 首先对于图片上传而言,在我们的项目开发中可以说出现的频率是相当的高的.这篇文章中,我将要描述的是在我们.Net中如何使用Jquery Ajax通过FormData对象异步提交图片文件到后台保存,并返回保存的图片路径展示出图片,实现一个无刷新的异步图片上传的过程,当然这里我讲解的是单张图片的保存过程,对于多图片上传的话其实我们只需要在type='file'文本框中加上一个multiple可多选,然后获取input中的文件数组遍历向后台提交感兴趣的话可以尝试,不过下一篇博客将会讲解如何使用L

截屏,并保存为图片文件

1 void CMyPrntScrDlg::Screen(const char* filename) 2 { 3 //GetDC(); 4 CDC *pDC;//屏幕DC 5 pDC = CDC::FromHandle(::GetDC(NULL));//获取当前整个屏幕DC 6 int BitPerPixel = pDC->GetDeviceCaps(BITSPIXEL);//获得颜色模式 7 int Width = pDC->GetDeviceCaps(HORZRES); 8 int Hei

PHP保存base64

base64图片格式:$base64_url = data:image/jpeg;base64,xxxxxxxxxxxxxxxxxxxxxx 1,去除头部:$base64_body = substr(strstr($base64_url,','),1); 2,解码:$data= base64_decode($base64_body ); 3,存储or创建图片: file_put_contents($file_path,$data); 或$image = imagecreatefromstring