php实现base64图片上传方式实例代码


Posted in PHP onFebruary 22, 2017

本例子中没有采用File Post上传文件方式!原理一样,为了更加的理解base64 选择将其输出在文本域中,并提交至服务器!运用到项目中建议采用提交File方式。

html代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>简单的html5 File测试 for pic2base64</title> 
<style> 
</style> 
<script> 
  window.onload = function(){ 
    var input = document.getElementById("demo_input"); 
    var result= document.getElementById("result"); 
    var img_area = document.getElementById("img_area"); 
    if ( typeof(FileReader) === 'undefined' ){
      result.innerHTML = "抱歉,你的浏览器不支持 FileReader,请使用现代浏览器操作!"; 
      input.setAttribute('disabled','disabled'); 
    }else{
      input.addEventListener('change',readFile,false);
    } 
  }
  function readFile(){
    var file = this.files[0]; 
    //这里我们判断下类型如果不是图片就返回 去掉就可以上传任意文件  
    if(!/image\/\w+/.test(file.type)){
      alert("请确保文件为图像类型"); 
      return false; 
    }
    var reader = new FileReader(); 
    reader.readAsDataURL(file); 
    console.log();
    reader.onload = function(e){ 
        result.innerHTML = this.result; 
        img_area.innerHTML = '<div class="sitetip">图片img标签展示:</div>![]('+this.result+')'; 
    }
  } 
</script> 
</head>

<body> 
  <form action="file.php" method="post">
  <input type="file" value="sdgsdg" id="demo_input" /> 
  <textarea name="img" id="result" rows=30 cols=300></textarea> 
  <p id="img_area"></p> 
  <input type="submit" value="提交">
</form>
</body> 
</html>

PHP功能块代码

<?php
/**
 * base64图片上传
 * @param $base64_img
 * @return array
 */
$base64_img = trim($_POST['img']);
$up_dir = './upload/';//存放在当前目录的upload文件夹下

if(!file_exists($up_dir)){
  mkdir($up_dir,0777);
}

if(preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_img, $result)){
  $type = $result[2];
  if(in_array($type,array('pjpeg','jpeg','jpg','gif','bmp','png'))){
    $new_file = $up_dir.date('YmdHis_').'.'.$type;
    if(file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_img)))){
      $img_path = str_replace('../../..', '', $new_file);
      echo '图片上传成功</br>![](' .$img_path. ')';
    }else{
          echo '图片上传失败</br>';

    }
  }else{
    //文件类型错误
  echo '图片上传类型错误';
  }

}else{
  //文件错误
  echo '文件错误';
}

实例效果如下:

php实现base64图片上传方式实例代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
Aug 07 PHP
php 魔术函数使用说明
Feb 21 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
Jul 05 PHP
PHP中判断变量为空的几种方法小结
Nov 12 PHP
php获取textarea的值并处理回车换行的方法
Oct 20 PHP
PHP中抽象类和抽象方法概念与用法分析
May 24 PHP
PHP实现适用于文件内容操作的分页类
Jun 15 PHP
PHP 常用时间函数资料整理
Oct 22 PHP
WAF的正确bypass
Jan 05 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
Aug 07 PHP
Smarty缓存机制实例详解【三种缓存方式】
Jul 20 PHP
Laravel统一错误处理为JSON的方法介绍
Oct 18 PHP
php中实现字符串翻转的方法
Feb 22 #PHP
php生成图片缩略图功能示例
Feb 22 #PHP
php图形jpgraph操作实例分析
Feb 22 #PHP
关于php几种字符串连接的效率比较(详解)
Feb 22 #PHP
php可变长参数处理函数详解
Feb 22 #PHP
php操作access数据库的方法详解
Feb 22 #PHP
Smarty3配置及入门语法
Feb 22 #PHP
You might like
php 解决旧系统 查出所有数据分页的类
2012/08/27 PHP
php Hex RGB颜色值互换的使用
2013/05/10 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
JavaScript中令你抓狂的魔术变量
2006/11/30 Javascript
Jquery 点击按钮显示和隐藏层的代码
2011/07/25 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
JQuery入门——事件切换之hover()方法应用介绍
2013/02/05 Javascript
根据经纬度计算地球上两点之间的距离js实现代码
2013/03/05 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
js实现悬浮窗效果(支持拖动)
2017/03/09 Javascript
angular指令笔记ng-options的使用方法
2017/09/18 Javascript
JS实现中文汉字按拼音排序的方法
2017/10/09 Javascript
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
bootstrap table实现iview固定列的效果实例代码详解
2019/09/30 Javascript
jQuery弹框插件使用方法详解
2020/05/26 jQuery
vue实现验证用户名是否可用
2021/01/20 Vue.js
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
使用Keras中的ImageDataGenerator进行批次读图方式
2020/06/17 Python
如何在scrapy中集成selenium爬取网页的方法
2020/11/18 Python
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
canvas像素画板的实现代码
2018/11/21 HTML / CSS
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
美体小铺印度官网:The Body Shop印度
2019/10/17 全球购物
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
最新的咖啡店创业计划书
2013/12/30 职场文书
上班迟到检讨书
2014/01/10 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
特种设备安全管理制度
2015/08/06 职场文书
JavaScript实现班级抽签小程序
2021/05/19 Javascript
JavaScript 定时器详情
2021/11/11 Javascript
python套接字socket通信
2022/04/01 Python
动视暴雪取消疫苗禁令 让所有员工返回线下工作
2022/04/03 其他游戏
MySQL查询日期时间
2022/05/15 MySQL