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 和 XML: 使用expat函数(二)
Oct 09 PHP
亲密接触PHP之PHP语法学习笔记1
Dec 17 PHP
PHP实现定时生成HTML网站首页实例代码
Nov 20 PHP
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
Jul 01 PHP
php截取字符串并保留完整xml标签的函数代码
Feb 06 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
Jun 25 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
Feb 02 PHP
php检测iis环境是否支持htaccess的方法
Feb 18 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
Jan 07 PHP
thinkPHP5 ACL用户权限模块用法详解
May 10 PHP
php简单构造json多维数组的方法示例
Jun 08 PHP
PHP实现的mysql主从数据库状态检测功能示例
Jul 20 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
帖几个PHP的无限分类实现想法~
2007/01/02 PHP
php部分常见问题总结
2008/03/27 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
jquery中使用ajax获取远程页面信息
2011/11/13 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
js实现发送验证码后的倒计时功能
2015/05/28 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
使用AJAX实现Web页面进度条的实例分享
2016/05/06 Javascript
再谈javascript常见错误及解决方法
2016/09/16 Javascript
微信小程序 数据绑定详解及实例
2016/10/25 Javascript
从零学习node.js之文件操作(三)
2017/02/21 Javascript
php输出全部gb2312编码内的汉字方法
2017/03/04 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
JS设计模式之惰性模式(二)
2017/09/29 Javascript
vue+socket.io+express+mongodb 实现简易多房间在线群聊示例
2017/10/21 Javascript
vue实现自定义H5视频播放器的方法步骤
2019/07/01 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
解决vue+webpack项目接口跨域出现的问题
2020/08/10 Javascript
Python文件及目录操作实例详解
2015/06/04 Python
Python导出DBF文件到Excel的方法
2015/07/25 Python
Python简单读写Xls格式文档的方法示例
2018/08/17 Python
示例详解Python3 or Python2 两者之间的差异
2018/08/23 Python
了解不常见但是实用的Python技巧
2019/05/23 Python
python 哈希表实现简单python字典代码实例
2019/09/27 Python
python有几个版本
2020/06/17 Python
详解Python中的路径问题
2020/09/02 Python
英语文学专业学生的自我评价
2013/10/31 职场文书
工作违纪检讨书
2014/02/17 职场文书
舞蹈专业求职信
2014/06/13 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
交通事故死亡赔偿协议书
2014/12/03 职场文书
学雷锋献爱心活动总结
2015/05/11 职场文书
夏洛特的网观后感
2015/06/15 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书
云服务器部署 Web 项目的实现步骤
2022/06/28 Servers