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调用Twitter的RSS的实现代码
Mar 10 PHP
PHP对接微信公众平台消息接口开发流程教程
Mar 25 PHP
php输入流php://input使用浅析
Sep 02 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
Nov 20 PHP
php判断文件上传类型及过滤不安全数据的方法
Dec 17 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
May 11 PHP
php通过curl模拟登陆DZ论坛
May 11 PHP
PHP实现基于mysqli的Model基类完整实例
Apr 08 PHP
PHP性能优化大全(php.ini)
May 20 PHP
Yii控制器中filter过滤器用法分析
Jul 15 PHP
设定php简写功能的方法
Nov 28 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 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与javascript对多项选择的处理
2006/10/09 PHP
PHP 一个比较完善的简单文件上传
2010/03/25 PHP
php5.5中类级别的常量使用介绍
2013/10/02 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
yum命令安装php7和相关扩展
2016/07/04 PHP
Laravel框架实现简单的学生信息管理平台案例
2019/05/07 PHP
PHP中散列密码的安全性分析
2019/07/26 PHP
javascript KeyDown、KeyPress和KeyUp事件的区别与联系
2009/12/03 Javascript
JavaScript匿名函数与委托使用示例
2014/07/22 Javascript
Javascript中的方法链(Method Chaining)介绍
2015/03/15 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
2015/12/04 Javascript
js模式化窗口问题![window.dialogArguments]
2016/10/30 Javascript
IntersectionObserver API 详解篇
2016/12/11 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
2017/04/27 Javascript
Angular2 之 路由与导航详细介绍
2017/05/26 Javascript
微信小程序 sha1 实现密码加密实例详解
2017/07/06 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
2017/11/22 Javascript
angular 实时监听input框value值的变化触发函数方法
2018/08/31 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
2019/01/06 Javascript
浅谈redux, koa, express 中间件实现对比解析
2019/05/23 Javascript
Python实现豆瓣图片下载的方法
2015/05/25 Python
使用Flask集成bootstrap的方法
2018/07/24 Python
Python爬虫框架Scrapy基本用法入门教程
2018/07/26 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
2019/06/05 Python
Python实现直播推流效果
2019/11/26 Python
初学者学习Python好还是Java好
2020/05/26 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
Boom手表官网:瑞典手表品牌,设计你的手表
2019/03/11 全球购物
介绍一下Java中的Class类
2015/04/10 面试题
参观接待方案
2014/03/17 职场文书
教师职业道德事迹材料
2014/08/18 职场文书
做人民满意的公务员活动方案
2014/08/25 职场文书
技术员岗位职责
2015/02/04 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书