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 03 PHP
ThinkPHP的URL重写问题
Jun 22 PHP
PHP中模拟处理HTTP PUT请求的例子
Jul 22 PHP
PHP获取数组中重复最多的元素的实现方法
Nov 11 PHP
php获取字符串中各个字符出现次数的方法
Feb 23 PHP
php字符串分割函数用法实例
Mar 17 PHP
PHP获取Exif缩略图的方法
Jul 13 PHP
WordPress中用于获取文章作者与分类信息的方法整理
Dec 17 PHP
php组合排序简单实现方法
Oct 15 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
Apr 20 PHP
PHP+MySQL实现在线测试答题实例
Jan 02 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
生成sessionid和随机密码的例子
2006/10/09 PHP
PHP数据缓存技术
2007/02/14 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
2013/11/14 PHP
WordPress中的shortcode短代码功能使用详解
2016/05/17 PHP
PHP实现数组array转换成xml的方法
2016/07/19 PHP
PHP实现单条sql执行多个数据的insert语句方法
2019/10/11 PHP
PHP中mysqli_get_server_version()的实例用法
2020/02/03 PHP
拖拉表格的JS函数
2008/11/20 Javascript
javascript语言结构小记(一)
2011/09/10 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
2013/06/09 Javascript
利用js动态添加删除table行的示例代码
2013/12/16 Javascript
解读Bootstrap v4 sass设计
2016/05/29 Javascript
Js调用Java方法并互相传参的简单实例
2016/08/11 Javascript
webuploader模态框ueditor显示问题解决方法
2016/12/27 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
JS实现区分中英文并统计字符个数的方法示例
2018/06/09 Javascript
详解Vue中Axios封装API接口的思路及方法
2020/10/10 Javascript
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
[46:20]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第二场 1月22日
2021/03/11 DOTA
深入解析Python中的WSGI接口
2015/05/11 Python
Python标准库sched模块使用指南
2017/07/06 Python
Python获取指定字符前面的所有字符方法
2018/05/02 Python
Python Flask 搭建微信小程序后台详解
2019/05/06 Python
python全局变量引用与修改过程解析
2020/01/07 Python
python实现ip地址的包含关系判断
2020/02/07 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
岗位职责的含义
2013/11/17 职场文书
医护人员英文求职信范文
2013/11/26 职场文书
初中物理教学反思
2014/01/14 职场文书
作弊检讨书1000字
2014/02/01 职场文书
创建市级文明单位实施方案
2014/03/01 职场文书
奥巴马胜选演讲稿
2014/05/15 职场文书
小学感恩节活动策划方案
2014/10/06 职场文书
医务人员医德考评自我评价
2015/03/03 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书