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
Email+URL的判断和自动转换函数
Oct 09 PHP
php 高性能书写
Dec 11 PHP
php中实现简单的ACL 完结篇
Sep 07 PHP
PHP设计模式 注册表模式(多个类的注册)
Feb 05 PHP
php preg_filter执行一个正则表达式搜索和替换
Feb 27 PHP
PHP goto语句简介和使用实例
Mar 11 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
Oct 15 PHP
PHP获取文件夹大小函数用法实例
Jul 01 PHP
ThinkPHP中limit()使用方法详解
Apr 19 PHP
PHP页面间传递值和保持值的方法
Aug 24 PHP
php mysql数据库操作类(实例讲解)
Aug 06 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 异常处理实现代码
2009/03/10 PHP
php 动态执行带有参数的类方法
2009/04/10 PHP
简单的php 验证图片生成函数
2009/05/21 PHP
php INI配置文件的解析实现分析
2011/01/04 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
yii框架使用分页的方法分析
2019/07/25 PHP
WordPress 照片lightbox效果的运用几点
2009/06/22 Javascript
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
使用JS CSS去除IE链接虚线框的三种方法
2013/11/14 Javascript
如何防止回车(enter)键提交表单
2014/05/11 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
node.js中watch机制详解
2014/11/17 Javascript
JS基础随笔(菜鸟必看篇)
2016/07/13 Javascript
AngularJS基础 ng-model-options 指令简单示例
2016/08/02 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
2017/03/24 Javascript
实例讲解JavaScript截取字符串
2018/11/30 Javascript
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
python遍历文件夹并删除特定格式文件的示例
2014/03/05 Python
python引用DLL文件的方法
2015/05/11 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
python将文本中的空格替换为换行的方法
2018/03/19 Python
对numpy中的数组条件筛选功能详解
2018/07/02 Python
Python面向对象魔法方法和单例模块代码实例
2020/03/25 Python
英国领先的酒类网上商城:TheDrinkShop
2017/03/16 全球购物
乌克兰巴士票购买网站:inBus
2021/03/12 全球购物
酒店总经理工作职责
2013/12/13 职场文书
办理暂住证介绍信
2014/01/11 职场文书
公司股份转让协议书范本
2015/01/28 职场文书
华清池导游词
2015/02/02 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
辩护词范文大全
2015/05/21 职场文书
Vue详细的入门笔记
2021/05/10 Vue.js
自己搭建resnet18网络并加载torchvision自带权重的操作
2021/05/13 Python
sql查询语句之平均分、最高最低分及排序语句
2022/05/30 MySQL