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 相关文章推荐
ob_start(),ob_start('ob_gzhandler')使用
Dec 25 PHP
php中mysql模块部分功能的简单封装
Sep 30 PHP
基于PHP生成静态页的实现方法
May 10 PHP
教你如何使用php session
Oct 28 PHP
php switch语句多个值匹配同一代码块的实现
Mar 03 PHP
php实现快速排序的三种方法分享
Mar 12 PHP
php 使用GD库为页面增加水印示例代码
Mar 24 PHP
学习php开源项目的源码指南
Dec 21 PHP
优化WordPress中文章与评论的时间显示
Jan 12 PHP
PHP实现路由映射到指定控制器
Aug 13 PHP
php实现购物车产品删除功能(2)
Jul 23 PHP
PHP字符串中抽取子串操作实例分析
Jun 22 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
Sony CFR 320 修复改造
2020/03/14 无线电
php cli 小技巧
2013/06/03 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
PHP fprintf()函数用法讲解
2019/02/16 PHP
javascript 写的一个简单的timer
2009/07/30 Javascript
全面解析bootstrap格子布局
2016/05/22 Javascript
深入理解JavaScript函数参数(推荐)
2016/07/26 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
微信小程序开发探究
2016/12/27 Javascript
微信小程序 页面跳转及数据传递详解
2017/03/14 Javascript
JS+CSS实现下拉刷新/上拉加载插件
2017/03/31 Javascript
Vue中封装input组件的实例详解
2017/10/17 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
vue引入新版 vue-awesome-swiper插件填坑问题
2018/01/25 Javascript
javaScript强制保留两位小数的输入数校验和小数保留问题
2018/05/09 Javascript
highCharts提示框中显示当前时间的方法
2019/01/18 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
2020/06/11 Javascript
js实现筛选功能
2020/11/24 Javascript
Python数据类型详解(一)字符串
2016/05/08 Python
正则给header的冒号两边参数添加单引号(Python请求用)
2019/08/09 Python
python xlwt如何设置单元格的自定义背景颜色
2019/09/03 Python
pytorch之inception_v3的实现案例
2020/01/06 Python
Python之多进程与多线程的使用
2021/02/23 Python
环境科学毕业生自荐信
2013/11/21 职场文书
计算机专业毕业生推荐信
2013/11/25 职场文书
大学生求职自荐信
2013/12/12 职场文书
体育教师自荐信范文
2013/12/16 职场文书
小学生获奖感言范文
2014/02/02 职场文书
珠宝店促销方案
2014/03/21 职场文书
村干部培训方案
2014/05/02 职场文书
大学感恩节活动总结
2015/05/05 职场文书
居住证明范文
2015/06/17 职场文书
从事会计工作年限证明
2015/06/23 职场文书
一文搞清楚MySQL count(*)、count(1)、count(col)区别
2022/03/03 MySQL