添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
//上传到后台,imgData是一个base64d文件的字符串。
                   var dataFile = new FormData();
                   dataFile.append('file', imgData);
                   $.ajax({
                    url: './lib/savePact.php',
                    type: 'post',
                    data: dataFile, //发给后端的formData
                    processData: false, //必填 必须false 才会避开jq对formdata的默认处理 XMLHttpRequest才会对formdata进行正确处理  否则会报Illegal invocation错误
                    contentType: false, //必填 必须false 才会加上正确的Content-Type
                    success: function (res) {
                        console.log(res)
                    fail(err){
                        console.log(err)
后端 savePact.php 文件
header('Access-Control-Allow-Origin:*'); // CORS //获取ajax传来的base64编码,$_POST['img']是你后台获取到的图片 $base64_image_content = $_REQUEST["file"]; //图片保存的位置 $path= 'C:/wamp64/www/dist/h5/mingziPact/pactfiles/'; //这个是自定义函数,将Base64图片转换为本地图片并保存 $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` 将字节数组写入文件。 希望这些信息能帮到你!如果有任何疑问,欢迎随时追问。