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出错界面
Oct 09 PHP
php木马攻击防御之道
Mar 24 PHP
php 时间计算问题小结
Jan 04 PHP
php使用PDO操作MySQL数据库实例
Dec 30 PHP
PHP获取一年中每个星期的开始和结束日期的方法
Feb 12 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
Oct 27 PHP
Joomla使用Apache重写模式的方法
May 04 PHP
PHP微信开发之模板消息回复
Jun 24 PHP
PHP中Notice错误常见解决方法
Apr 28 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
Jul 21 PHP
Laravel实现定时任务的示例代码
Aug 10 PHP
PHP+mysql实现的三级联动菜单功能示例
Feb 15 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中this,self,parent的区别详解
2013/06/08 PHP
WordPress免插件实现面包屑导航的示例代码
2020/08/20 PHP
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
2011/08/15 Javascript
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
JavaScript获取XML数据附示例截图
2014/03/05 Javascript
Javascript中With语句用法实例
2015/05/14 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
Bootstrap carousel轮转图的使用实例详解
2016/05/17 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
详解nodejs 文本操作模块-fs模块(一)
2016/12/22 NodeJs
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
node实现生成带参数的小程序二维码并保存到本地功能示例
2018/12/05 Javascript
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
2018/12/12 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
vue中beforeRouteLeave实现页面回退不刷新的示例代码
2019/11/01 Javascript
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
一个基于flask的web应用诞生 flask和mysql相连(4)
2017/04/11 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
用于业余项目的8个优秀Python库
2018/09/21 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
python顺序执行多个py文件的方法
2019/06/29 Python
django之对FileField字段的upload_to的设定方法
2019/07/28 Python
django template实现定义临时变量,自定义赋值、自增实例
2020/07/12 Python
python使用matplotlib绘制折线图的示例代码
2020/09/22 Python
党风廉设责任书
2014/04/16 职场文书
小学六年级学生评语
2014/04/22 职场文书
责任书格式范文
2014/07/28 职场文书
2015年清明节活动总结
2015/02/09 职场文书
起诉书格式范文
2015/05/20 职场文书
浅谈:电影《孔子》观后感(范文)
2019/10/14 职场文书
浅谈mysql返回Boolean类型的几种情况
2021/06/04 MySQL
详解Python描述符的工作原理
2021/06/11 Python