header(
'Content-type:text/html;charset=utf-8'
);
$base64_image_content
=
$_POST
[
'imgBase64'
];
if
(preg_match(
'/^(data:\s*image\/(\w+);base64,)/'
,
$base64_image_content
,
$result
)){
$type
=
$result
[
2
];
$path
=
"upload/"
;
if
(!file_exists(
$path
))
mkdir(
$path
,
0700
);
$new_file
=
$path
. time() .
".{$type}"
;
if
(file_put_contents(
$new_file
, base64_decode(str_replace(
$result
[
1
],
''
,
$base64_image_content
)))){
echo
'保存成功:'
,
$new_file
;
}
else
{
echo
'保存失败'
;
<?phpheader('Content-type:text/html;charset=utf-8');$base64_image_content = $_POST['imgBase64'];//匹配出图片的格式if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)){ $
昨天“写”了一编关于
图片
加水印的博文【vue + vant实现
图片
上传加水印】。那么,从
php
的后端角度上来说,前端已经实现了加水印,那在
php
,是怎么接收的。
其实,这跟平时我们写
图片
上传没什么区别。因为在vant的世界里。他的
图片
上传是用
base64
上传的。也就是说,他先把
文件
域转成
base64
,然后以
base64
的字符串进行上传。在
php
端,就直接$_POST 接收。
由于时间关系,我先写怎么多。
在开发中,自己遇到一个前端在上传
图片
的时候,使用的
base64
数据流
文件
显示的
图片
。
<img src="data:image/jpg;
base64
," />
***image/后面的jpg是我们的
图片
文件
格式
,(
base64
,)后面的很大一长串就是具体的
文件
信息。
data:image/jpg;
base64
则是指的
文件
头。我们可以把src里面的全部
内容
放在浏览器的地址栏进
行访问,是可以正常显示
图片
文件
的。
我将src的值获取到后台之后,在后台进行处理。这里的方法就不具体细讲了。
<img src="data:image/jpg;
base64
," />
***image/后面的jpg是我们的
图片
文件
格式
,(
base64
,)后面的很大一长串就是具体的
文件
信息。
data:image/jpg;
base64
则是指的
文件
头。...
将
base64
格式
的数据存为
文件
,需要先将其解码为二进制数据,然后再将二进制数据写入
文件
中。具体操作可以使用Python中的
base64
和io模块来实现,代码如下:
import
base64
import io
# 将
base64
格式
的数据解码为二进制数据
data =
base64
.b64decode(
base64
_data)
# 将二进制数据写入
文件
中
with io.open(file_path, 'wb') as f:
f.write(data)
其中,
base64
_data为
base64
格式
的数据,file_path为要
保存
的
文件
路径。