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 相关文章推荐
MYSQL数据库初学者使用指南
Nov 16 PHP
php 生成饼图 三维饼图
Sep 28 PHP
PHP使用Mysql事务实例解析
Sep 08 PHP
一个比较不错的PHP日历类分享
Nov 18 PHP
PHP实现合并discuz用户
Aug 05 PHP
PHP 微信支付类 demo
Nov 30 PHP
PHP邮箱验证示例教程
Jun 01 PHP
PHP实现的大文件切割与合并功能示例
Apr 10 PHP
PHP实现生成数据字典功能示例
May 24 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
PHP两个n位的二进制整数相加问题的解决
Aug 26 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
Apr 27 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网站)
2015/10/20 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
多个datatable共存造成多个表格的checkbox都被选中
2013/07/11 Javascript
js读取cookie方法总结
2014/10/31 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
基于jquery插件实现拖拽删除图片功能
2020/08/27 Javascript
JS获取鼠标选中的文字
2016/08/10 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
搭建Bootstrap离线文档的方法
2016/12/02 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
2017/02/24 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
js 只比较时间大小的实例
2017/10/26 Javascript
swiper插件自定义切换箭头按钮
2017/12/28 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
2018/09/14 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
2019/01/23 Javascript
jQuery中DOM常见操作实例小结
2019/08/01 jQuery
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
Python中使用PDB库调试程序
2015/04/05 Python
python爬虫获取多页天涯帖子
2018/02/23 Python
深入浅析Python传值与传址
2018/07/10 Python
对Python 多线程统计所有csv文件的行数方法详解
2019/02/12 Python
Flask模板引擎之Jinja2语法介绍
2019/06/26 Python
python 使用建议与技巧分享(四)
2020/08/18 Python
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
经典演讲稿范文
2013/12/30 职场文书
简历的自我评价范文
2014/02/04 职场文书
公司办公室岗位职责
2014/03/19 职场文书
海洋科学专业求职信
2014/08/10 职场文书
市场总监岗位职责
2015/02/11 职场文书
2015年党风建设工作总结
2015/04/29 职场文书
副校长2015年教育教学工作总结
2015/07/27 职场文书