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控制网页过期时间的代码
Sep 28 PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
Dec 21 PHP
php获取字段名示例分享
Mar 03 PHP
php版本的cron定时任务执行器使用实例
Aug 19 PHP
PHP正则表达式之捕获组与非捕获组
Nov 06 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
May 19 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
Jan 17 PHP
详谈phpAdmin修改密码后拒绝访问的问题
Apr 03 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
Oct 14 PHP
PHP安装BCMath扩展的方法
Feb 13 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 PHP
php 的多进程操作实践案例分析
Feb 28 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中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
PHP类的反射用法实例
2014/11/03 PHP
php正则匹配html中带class的div并选取其中内容的方法
2015/01/13 PHP
PHP连接SQLServer2005的方法
2015/01/27 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
2016/02/15 PHP
基于PHP实现用户注册登录功能
2016/10/14 PHP
laravel框架的安装与路由实例分析
2019/10/11 PHP
Javascript之this关键字深入解析
2013/11/12 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
2015/06/05 Javascript
浅析JavaScript声明变量
2015/12/21 Javascript
jquery实现图片预加载
2015/12/25 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
Vue数据驱动模拟实现2
2017/01/11 Javascript
使用Vue.js和Flask来构建一个单页的App的示例
2018/03/21 Javascript
在vue里使用codemirror遇到的问题
2018/11/01 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
JavaScript中的函数申明、函数表达式、箭头函数
2019/12/06 Javascript
jQuery实现简单飞机大战
2020/07/05 jQuery
[48:02]Ti4循环赛第三日 VG vs Liquid和NEWBEE vs DK
2014/07/12 DOTA
python获取本机外网ip的方法
2015/04/15 Python
Python中的os.path路径模块中的操作方法总结
2016/07/07 Python
python实现下载整个ftp目录的方法
2017/01/17 Python
对python中Json与object转化的方法详解
2018/12/31 Python
如何学习Python time模块
2020/06/03 Python
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
建筑总经理岗位职责
2014/02/02 职场文书
《青蛙看海》教学反思
2014/04/23 职场文书
投标保密承诺书
2014/05/19 职场文书
岗位职责说明书模板
2014/07/30 职场文书
2014最新离职证明范本
2014/09/12 职场文书
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
小学见习报告
2015/06/23 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
初三英语教学反思
2016/02/15 职场文书
react 项目中引入图片的几种方式
2021/06/02 Javascript