php头像上传预览实例代码


Posted in PHP onMay 02, 2017

说道上传图片,大家并不陌生,不过,在以后开发的项目中,可能并不会让你使用提交刷新页面式的上传图片,比如上传头像,按照常理,肯定是在相册选择照片之后,确认上传,而肯定不会通过form表单,点击submit刷新式上传。我为大家介绍两种异步非刷新式上传图片+图片预览:第一种,通过现成的uploadfy插件进行上传,网上好多实例。

不过我重点为大家介绍的是第二种,通过Ajax上传图片。因为使用uploadfy插件需要设备支持swf格式的Flash,所以对大多数手机来说,第一种方式就没办法使用了。首先,我先跟大家说一下上传原理:通过js控制file文本域,当选择照片之后,通过Ajax异步提交form表单,然后将图片的位置作为返回值,使用js把img的src属性设置为返回值。

上传头像区域:

代码:

<!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>无标题文档</title>

<link href="bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="external nofollow" rel="stylesheet" type="text/css" />
<script src="bootstrap-3.3.7-dist/js/jquery-1.11.2.min.js"></script>
<script src="bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>

<style type="text/css">
#yl{ width:200px; height:200px; background-image:url(img/avatar.png); background-size:200px 200px;}
#file{ width:200px; height:200px; float:left; opacity:0;}
.modal-content{ width:500px;}
.kk{ margin-left:130px;}
</style>

</head>

<body>
<!-- 按钮触发模态框 -->
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
  上传头像
</button>
<!-- 模态框(Modal) -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">
          ×
        </button>
        <h4 class="modal-title" id="myModalLabel">
          上传头像
        </h4>
      </div>
      <div class="modal-body">
        <form id="sc" action="upload.php" method="post" enctype="multipart/form-data" target="shangchuan">
  
  <input type="hidden" name="tp" value="" id="tp" />
  
  <div id="yl" class="kk">
    <input type="file" name="file" id="file" onchange="document.getElementById('sc').submit()" />
  </div>  
</form>
<iframe style="display:none" name="shangchuan" id="shangchuan">
</iframe>

      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">关闭
        </button>
        <!--<button type="button" class="btn btn-primary">
          提交更改
        </button>-->
        
      </div>
    </div><!-- /.modal-content -->
  </div><!-- /.modal -->
</div>


</body>

<script type="text/javascript">

//回调函数,调用该方法传一个文件路径,该变背景图
function showimg(url)
{
  var div = document.getElementById("yl");
  div.style.backgroundImage = "url("+url+")";
  
  document.getElementById("tp").value = url;
}
</script>
</html>

上传的处理页:

<?php

if($_FILES["file"]["error"])
{
  echo $_FILES["file"]["error"];
}
else
{
  if(($_FILES["file"]["type"]=="image/jpeg" || $_FILES["file"]["type"]=="image/png")&& $_FILES["file"]["size"]<1024000000)
  {
    $fname = "./img/".date("YmdHis").$_FILES["file"]["name"];  
    
    $filename = iconv("UTF-8","gb2312",$fname);
    
    if(file_exists($filename))
    {
      echo "<script>alert('该文件已存在!');</script>";
    }
    else
    {
      move_uploaded_file($_FILES["file"]["tmp_name"],$filename);
      
      unlink($_POST["tp"]);
      
      echo "<script>parent.showimg('{$fname}');</script>";
    }
    
  }
}

原理:

通过form表单的enctype="multipart/form-data"属性将文件临时放到wamp文件夹中的tmp目录下,再通过后台php程序将文件保存在体统中。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
自定义PHP分页函数
Oct 09 PHP
如何隐藏你的.php文件
Jan 04 PHP
php 数组二分法查找函数代码
Feb 16 PHP
PHP开发中四种查询返回结果分析
Jan 02 PHP
PHP中使用数组指针函数操作数组示例
Nov 19 PHP
PHP中的traits实现代码复用使用实例
May 13 PHP
smarty简单应用实例
Nov 03 PHP
PHP简单实现无限级分类的方法
May 13 PHP
PHP获取访问页面HTTP状态码的实现代码
Nov 03 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
Aug 03 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
Jul 22 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
May 02 #PHP
AJAX的使用方法详解
Apr 29 #PHP
PHP实现的DES加密解密封装类完整实例
Apr 29 #PHP
PHP编程实现csv文件导入mysql数据库的方法
Apr 29 #PHP
PHP实现ASCII码与字符串相互转换的方法
Apr 29 #PHP
PHP中Notice错误常见解决方法
Apr 28 #PHP
PHP实现查询手机归属地的方法详解
Apr 28 #PHP
You might like
一个目录遍历函数
2006/10/09 PHP
用header 发送cookie的php代码
2007/03/16 PHP
关于PHP5 Session生命周期介绍
2010/03/02 PHP
作为程序员必知的16个最佳PHP库
2015/12/09 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
PHP判断是否微信访问的方法示例
2019/03/27 PHP
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
在每个匹配元素的外部插入新元素的方法
2013/12/20 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
2014/01/06 Javascript
用json方式实现在 js 中建立一个map
2014/05/02 Javascript
js实现div弹出层的方法
2014/11/20 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
详解JavaScript中getFullYear()方法的使用
2015/06/10 Javascript
Angularjs中如何使用filterFilter函数过滤
2016/02/06 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
AngularJS 指令详细介绍
2016/07/27 Javascript
webpack 2的react开发配置实例代码
2017/07/28 Javascript
20个最常见的jQuery面试问题及答案
2018/05/23 jQuery
详解vue使用插槽分发内容slot的用法
2019/03/28 Javascript
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
2019/11/13 Javascript
基于Python执行dos命令并获取输出的结果
2019/12/30 Python
深入浅析python的第三方库pandas
2020/02/13 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
四下基层实施方案
2014/03/28 职场文书
小学生新年寄语
2014/04/03 职场文书
党支部班子“四风”问题自我剖析材料
2014/09/28 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
股东授权委托书
2014/10/15 职场文书
临时用工协议书范本
2014/10/29 职场文书
2014年客户经理工作总结
2014/11/20 职场文书
横空出世观后感
2015/06/09 职场文书
董事长年会致辞
2015/07/29 职场文书
闭幕词的写作格式与范文!
2019/06/24 职场文书