把base64格式图片上传到服务器后保存起来
2018-03-14 01:21
435 查看
$base64_string = "data:image/png;base64,/9j/4AAQSkZJRgABAQA...“这个是图片转化为base64的字符串,但是有时候客户端上传到服务器端的时候,会变成$base64_string = "[removed],/9j/4AAQSkZJRgABAQA...“,所以为了恢复全部数据,我们可以通过$base64_string=str_replace('[removed]','data:image/png;base64,',$base64_string);但是PHP的内置函数base64_decode解码图片编码成的base64字符串后,会加入这些字符 data:image/png;base64,会导致图片看不了。为了避免这种情况,我们可以截取后面的字符串进行解码。示例如下:
$url1 = date("YmdHis").mt_rand(1000,9999)."a.png";
$url2 = date("YmdHis").mt_rand(1000,9999)."b.png";
$base64_string= explode(',', $base64_string); //截取data:image/png;base64, 这个逗号后的字符
$data1 = base64_decode(",".$base64_string[1]);//对截取后的字符使用base64_decode进行解码
$data2 = base64_decode($base64_string[1]);//对截取后的字符使用base64_decode进行解码
file_put_contents($url1, $data1); //写入文件并保存
file_put_contents($url2, $data2); //写入文件并保存结果:url1和url2显示的图片一样
$url1 = date("YmdHis").mt_rand(1000,9999)."a.png";
$url2 = date("YmdHis").mt_rand(1000,9999)."b.png";
$base64_string= explode(',', $base64_string); //截取data:image/png;base64, 这个逗号后的字符
$data1 = base64_decode(",".$base64_string[1]);//对截取后的字符使用base64_decode进行解码
$data2 = base64_decode($base64_string[1]);//对截取后的字符使用base64_decode进行解码
file_put_contents($url1, $data1); //写入文件并保存
file_put_contents($url2, $data2); //写入文件并保存结果:url1和url2显示的图片一样
相关文章推荐
- Nodejs把接收图片base64格式保存为文件存储到服务器上
- 上传base64格式的图片到服务器
- Android将图上以base64编码的格式上传到node.js服务器并保存
- base64字符串转文件,以及ngImgCrop裁剪图片并上传保存到服务器示例
- H5移动开发Ajax上传多张Base64格式图片到服务器
- base64格式图片上传服务器并读取
- C#web身份证读卡器,将base64位字以图片格式保存在服务器
- android上传图片到服务器(使用base64字节流的形式通过 AsyncHttpClient框架传输)
- android通过Base64往服务器上传图片和对象
- android上传图片到服务器(使用base64字节流的形式通过 AsyncHttpClient框架传输)
- h5移动开发Ajax上传多张Base64格式图片(前端发送及后端验证)
- android上传图片到服务器(使用base64字节流的形式通过 AsyncHttpClient框架传输)
- 图片压缩,Base64编码后上传服务器
- base64 解决图片移动端上传保存问题
- canvas获取base64图片并上传php服务器
- 百度UEditor图片文件改变默认保存到项目根路径,自定义上传路径或远程服务器
- 图片使用base64图片数据格式上传(后台使用springMVC)
- php图片处理之图片转为base64格式上传
- swift3.0图片保存到沙盒-从沙盒读取图片显示-从沙盒上传到服务器
- SpringMVC 上传图片保存到服务器 同时更改图片名称保存至数据库