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 COOKIE设置为浏览器进程
Jun 21 PHP
php常用ODBC函数集(详细)
Jun 24 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
Dec 19 PHP
php+ajax实现无刷新动态加载数据技术
Apr 28 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
Jul 01 PHP
Yii CDBCriteria常用方法实例小结
Jan 19 PHP
PHP实现json_decode不转义中文的方法
May 20 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
Dec 21 PHP
thinkPHP中U方法加密传递参数功能示例
May 29 PHP
laravel 数据验证规则详解
Oct 23 PHP
thinkphp 框架数据库切换实现方法分析
May 18 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 Cookie的一个使用注意点
2008/11/08 PHP
PHP list() 将数组中的值赋给变量的简单实例
2016/06/13 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
PHP基于ORM方式操作MySQL数据库实例
2017/06/21 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
2020/10/30 PHP
javascript 检测浏览器类型和版本的代码
2009/09/15 Javascript
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
通过判断JavaScript的版本实现执行不同的代码
2010/05/11 Javascript
jquery 无限级联菜单案例分享
2013/03/26 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
jQuery中Ajax全局事件引用方式及各个事件(全局/局部)执行顺序
2016/06/02 Javascript
浅谈jQuery为哪般去掉了浏览器检测
2016/08/29 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
2017/01/05 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
2017/01/22 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
2019/08/16 Javascript
Vue.js暴露方法给WebView的使用操作
2020/09/07 Javascript
Windows下安装Django框架的方法简明教程
2018/03/28 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
Python中GIL的使用详解
2018/10/03 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
Django继承自带user表并重写的例子
2019/11/18 Python
python对象销毁实例(垃圾回收)
2020/01/16 Python
浅谈ROC曲线的最佳阈值如何选取
2020/02/28 Python
PyQt5实现登录页面
2020/05/30 Python
Python读取二进制文件代码方法解析
2020/06/22 Python
虚拟机下载python是否需要联网
2020/07/27 Python
如何利用Python写个坦克大战
2020/11/18 Python
python安装及变量名介绍详解
2020/12/12 Python
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
如何手工释放资源
2013/12/15 面试题
九年级物理教学反思
2014/01/29 职场文书
小小的船教学反思
2014/02/21 职场文书
交通事故赔偿协议书
2014/10/16 职场文书
spring cloud gateway中如何读取请求参数
2021/07/15 Java/Android