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写的采集程序
Mar 16 PHP
PHP 全角转半角实现代码
May 16 PHP
php设计模式 DAO(数据访问对象模式)
Jun 26 PHP
抓取并下载CSS中所有图片文件的php代码
Sep 26 PHP
PHP页面中文乱码分析
Oct 29 PHP
Drupal读取Excel并导入数据库实例
Mar 02 PHP
php获取域名的google收录示例
Mar 24 PHP
php在数组中查找指定值的方法
Mar 17 PHP
PHP实现递归目录的5种方法
Oct 27 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
PHP后门隐藏的一些技巧总结
Nov 04 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
压力如何影响浓缩咖啡品质
2021/03/03 咖啡文化
Drupal7连接多个数据库及常见问题解决
2014/03/02 PHP
php rmdir使用递归函数删除非空目录实例详解
2016/10/20 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
jQuery Trim去除字符串首尾空字符的实现方法说明
2014/02/11 Javascript
JQuery教学之性能优化
2014/05/14 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
Jquery日历插件制作简单日历
2015/10/28 Javascript
JavaScript电子时钟倒计时
2016/01/09 Javascript
使用postMesssage()实现iframe跨域页面间的信息传递
2016/03/29 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
详解vue后台系统登录态管理
2019/04/02 Javascript
常见的浏览器存储方式(cookie、localStorage、sessionStorage)
2019/05/07 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
python getopt 参数处理小示例
2009/06/09 Python
pycharm 使用心得(八)如何调用另一文件中的函数
2014/06/06 Python
python进阶教程之词典、字典、dict
2014/08/29 Python
详解python调度框架APScheduler使用
2017/03/28 Python
如何使用Python自动控制windows桌面
2019/07/11 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
2019/09/07 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
2020/12/04 Python
windows系统Tensorflow2.x简单安装记录(图文)
2021/01/18 Python
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
中国电视购物:快乐购
2017/02/04 全球购物
大学在校生求职信范文
2013/11/21 职场文书
最热门的自我评价
2013/12/30 职场文书
村干部承诺书
2014/03/28 职场文书
选秀节目策划方案
2014/06/06 职场文书
小学生安全责任书
2014/07/25 职场文书
大学本科生职业生涯规划书范文
2014/09/14 职场文书
紧急通知
2015/04/17 职场文书
基于Redis实现分布式锁的方法(lua脚本版)
2021/05/12 Redis
python实现双向链表原理
2022/05/25 Python