PHP实现本地图片转base64格式上传并存储的方法和代码
来源:绵阳动力网络公司  时间:2020-08-03  阅读:11

我们在开发系统时,处理图片上传是不可避免的,例如使用thinkphp的肯定很熟悉import("@.ORG.UploadFile");的上传方式,今天我们来讲一个使用html5 base64上传图片的方法。

可以大概的讲一下思路,其实也挺简单。选择了图片之后,js会先把已选的图片转化为base64格式,然后通过ajax上传到服务器端,服务器端再转化为图片,进行储存的一个过程。

首先我们来看前端的代码,前端主要由html部分和js代码部分构成,具体如下:

html部分:

<input type="file" id="imagesfile">

js部分

$("#imagesfile").change(function (){
           
   var file = this.files[0];
    
   //用size属性判断文件大小不能超过5M ,前端直接判断的好处,免去服务器的压力。
   if( file.size > 5*1024*1024 ){ 
        alert( "你上传的文件太大了!" ) 
   }
    
   //好东西来了
   var reader=new FileReader();
    reader.onload = function(){
       
      // 通过 reader.result 来访问生成的 base64 DataURL
      var base64 = reader.result;
       
      //打印到控制台,按F12查看
      console.log(base64);
       
      //上传图片
      base64_uploading(base64);
       
    }
     reader.readAsDataURL(file);
         
});
 
//AJAX上传base64
function base64_uploading(base64Data){
  $.ajax({
     type: 'POST',
     url: "上传接口路径",
     data: { 
      'base64': base64Data
     },
     dataType: 'json',
     timeout: 50000,
     success: function(data){
         
        console.log(data);
         
     },
     complete:function() {},
     error: function(xhr, type){
         alert('上传超时啦,再试试');
          
     }
   });
}

其实前端的代码也并不复杂,主要是使用了new FileReader();的接口来转化图片,new FileReader();还有其他的接口,想了解更多的接口使用的童鞋,自行谷歌搜索new FileReader();。

接下来,那就是服务器端的代码了,上面的demo,是用thinkphp为框架编写的,但其他框架也基本通用的。

以上就是PHP代码,原理也很简单,拿到接口上传的base64,然后再转为图片再储存。

使用的是thinkphp 3.2,无需数据库,PHP环境直接运行即可。

php目录路径为:

‪Application\Home\Controller\Base64Controller.class.php

html目录路径为:

Application\Home\View\Base64\imagesupload.html

好了,以上内容就是今天为大家介绍的PHP实现本地图片转base64格式上传并存储的方法和代码的全部内容,如果对你有所帮助,请收藏!