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实现图片等比例放大和缩小的方法详解
Jun 06 PHP
php unset全局变量运用问题的深入解析
Jun 17 PHP
JoshChen_web格式编码UTF8-无BOM的小细节分析
Aug 16 PHP
PHP中的use关键字概述
Jul 23 PHP
php实现文本数据导入SQL SERVER
May 17 PHP
PHP判断密码强度的方法详解
May 26 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
Smarty模板类内部原理实例分析
Jul 03 PHP
PHP实现常用排序算法的方法
Feb 05 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 PHP
php回调函数处理数组操作示例
Apr 13 PHP
PHP文件操作简单介绍及函数汇总
Dec 11 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
win10 apache配置虚拟主机后localhost无法使用的解决方法
2018/01/27 PHP
js中reverse函数的用法详解
2013/12/26 Javascript
动态的绑定事件addEventListener方法的使用
2014/01/24 Javascript
JS应用正则表达式转换大小写示例
2014/09/18 Javascript
javascript学习总结之js使用技巧
2015/09/02 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
2016/08/17 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
原生JS中slice()方法和splice()区别
2017/03/06 Javascript
使用jquery datatable和bootsrap创建表格实例代码
2017/03/17 Javascript
详解基于Node.js的微信JS-SDK后端接口实现代码
2017/07/15 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
Vue组件之自定义事件的功能图解
2018/02/01 Javascript
vue加载完成后的回调函数方法
2018/09/07 Javascript
angular中两种表单的区别(响应式和模板驱动表单)
2018/12/06 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
vue切换菜单取消未完成接口请求的案例
2020/11/13 Javascript
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
python绘制直线的方法
2018/06/30 Python
简单谈谈python基本数据类型
2018/09/26 Python
python保存二维数组到txt文件中的方法
2018/11/15 Python
Python学习笔记之Break和Continue用法分析
2019/08/14 Python
使用浏览器访问python写的服务器程序
2019/10/10 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
Pycharm调试程序技巧小结
2020/08/08 Python
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
彪马香港官方网上商店:PUMA香港
2020/12/06 全球购物
名词解释型面试题(主要是网络)
2013/12/27 面试题
软件测试常见笔试题
2012/02/04 面试题
纪念建党演讲稿范文
2014/01/13 职场文书
给物业的表扬信
2014/01/21 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
python munch库的使用解析
2021/05/25 Python
nginx实现动静分离的方法示例
2021/11/07 Servers
动态规划之使用备忘录来改进Javascript函数
2022/04/07 Javascript