header('Access-Control-Allow-Origin:*');
$base64_image_content = $_REQUEST["file"];
$path= 'C:/wamp64/www/dist/h5/mingziPact/pactfiles/';
$data = base64_image_content($base64_image_content,$path);
echo $data;
* 将Base64图片转换为本地图片并保存
* @param $base64_image_content 要保存的Base64
* @param $path 要保存的路径
function base64_image_content($base64_image_content,$path){
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)){
$type = $result[2];
$new_file = $path.date('Ymd',time())."/";
if(!file_exists($new_file)){
mkdir($new_file, 0700);
$new_file = $new_file.time().".{$type}";
if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){
return $new_file;
}else{
return false;
}else{
return false;
前端发送base64字符串//上传到后台,imgData是一个base64d文件的字符串。 var dataFile = new FormData(); dataFile.append('file', imgData); $.ajax({ url: './lib/savePact.php', type: 'post
如果是多图片上传直接foreach循环$image即可;public function base64(){
//接收base64数据
$image= $_POST['image'];
//设置图片名称
$imageName = "25220_".date("His",time())."_".rand(1111,9999).'.png';
//判断是否有逗号 如果有就截取后半部分
if (strstr($image
<form enctype="multipart/form-data" id="oForm">
<input type="file" name="file" id="file" onchange="readAsDataURL()" />
<input type="button&qu
昨天“写”了一编关于图片加水印的博文【vue + vant实现图片上传加水印】。那么,从php的后端角度上来说,前端已经实现了加水印,那在php,是怎么接收的。
其实,这跟平时我们写图片上传没什么区别。因为在vant的世界里。他的图片上传是用base64上传的。也就是说,他先把文件域转成base64,然后以base64的字符串进行上传。在 php端,就直接$_POST 接收。
由于时间关系,我先写怎么多。
前言:因业务需求,前台生成多张合成图后上传服务器,接口会等待时间过长,造成不好的体验。我们需要前台将多张base64的图片传到后台,由后台队列生成,然后在传到七牛服务器。可以采取3种方案。1:将base64直接存到数据库;2.将base64转成图片file在传到七牛;3将base64直接传到七牛,我们采取方式3。废话不多说,上代码Controller层:
Service层:
如果没有引入七牛的sdk,有两个方法会找不到,下面把代码也贴上:
end:齐活...
public class Main {
public static void main(String[] args) throws Exception {
String base64String = "YOUR_BASE64_STRING";
byte[] imageBytes = Base64.getDecoder().decode(base64String);
try (OutputStream outputStream = new FileOutputStream("C:/image.jpg")) {
outputStream.write(imageBytes);
在上面的代码中,请将 `YOUR_BASE64_STRING` 替换为你要转换的 base64 编码字符串。 代码中的 `Base64.getDecoder().decode` 方法会将 base64 编码解码为字节数组,然后使用 `FileOutputStream` 将字节数组写入文件。
希望这些信息能帮到你!如果有任何疑问,欢迎随时追问。