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做下载文件的实现代码及文件名中乱码解决方法
Feb 03 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
Sep 20 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
Oct 13 PHP
yii实现CheckBox复选框在同一行显示的方法
Dec 03 PHP
PHP也能干大事 随机函数
Apr 14 PHP
php一个解析字符串排列数组的方法
May 12 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
Jan 14 PHP
SSO单点登录的PHP实现方法(Laravel框架)
Mar 23 PHP
功能强大的php分页函数
Jul 20 PHP
Laravel5框架自定义错误页面配置操作示例
Apr 17 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
Oct 15 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
Mar 26 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实现的一段简单概率相关代码
2016/05/30 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
PHP手机号码及邮箱正则表达式实例解析
2020/07/11 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
2020/11/27 PHP
几个javascript操作word的参考代码
2009/10/26 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
2014/02/04 Javascript
jQuery修改CSS伪元素属性的方法
2014/07/30 Javascript
JS实现在网页中弹出一个输入框的方法
2015/03/03 Javascript
JavaScript实现的微信二维码图片生成器的示例
2016/10/26 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
JavaScript无操作后屏保功能的实现方法
2017/07/04 Javascript
nodejs中使用worker_threads来创建新的线程的方法
2021/01/22 NodeJs
Python自动调用IE打开某个网站的方法
2015/06/03 Python
用Python获取摄像头并实时控制人脸的实现示例
2019/07/11 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
2019/12/11 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
python+selenium爬取微博热搜存入Mysql的实现方法
2021/01/27 Python
css3实现3D色子翻转特效
2014/12/23 HTML / CSS
利用CSS3实现的文字定时向上滚动
2016/08/29 HTML / CSS
HTML5实现直播间评论滚动效果的代码
2020/05/27 HTML / CSS
Evisu官方网站:日本牛仔品牌,时尚街头设计风格
2016/12/30 全球购物
环境科学专业个人求职信
2013/09/26 职场文书
青年志愿者先进事迹
2014/05/06 职场文书
2014年巴西世界杯口号
2014/06/05 职场文书
教师职业道德事迹材料
2014/08/18 职场文书
党员学习中共十八大思想报告
2014/09/12 职场文书
乡镇遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
党员先进事迹材料
2014/12/19 职场文书
暑期工社会实践报告
2015/07/13 职场文书
2016圣诞节贺卡寄语
2015/12/07 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书
导游词之塘栖古镇
2019/12/04 职场文书
MySQL的存储过程和相关函数
2022/04/26 MySQL