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(1)
Oct 09 PHP
深入了解php4(1)--回到未来
Oct 09 PHP
NT IIS下用ODBC连接数据库
Oct 09 PHP
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
Mar 06 PHP
php中rename函数用法分析
Nov 15 PHP
PHP+MySQL删除操作实例
Jan 21 PHP
php操作xml入门之xml基本介绍及xml标签元素
Jan 23 PHP
PHP获取数组长度或某个值出现次数的方法
Feb 11 PHP
php 使用html5实现多文件上传实例
Oct 24 PHP
php中Ioc(控制反转)和Di(依赖注入)
May 07 PHP
PHP测试框架PHPUnit组织测试操作示例
May 28 PHP
php post换行的方法
Feb 03 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实现paypal 授权登录
2015/05/28 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
Symfony2针对输入时间进行查询的方法分析
2017/06/28 PHP
如何利用预加载优化Laravel Model查询详解
2017/08/11 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
jQuery 美元符冲突的解决方法
2010/03/28 Javascript
jsvascript图像处理—(计算机视觉应用)图像金字塔
2013/01/15 Javascript
jQuery插件简单实现方法
2015/07/18 Javascript
apply和call方法定义及apply和call方法的区别
2015/11/15 Javascript
在ASP.NET MVC项目中使用RequireJS库的用法示例
2016/02/15 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
js 动态给元素添加、移除事件的实现方法
2016/07/19 Javascript
JavaScript中的splice方法用法详解
2016/07/20 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
Javascript实现倒计时时差效果
2017/05/18 Javascript
详解Angular2 之 结构型指令
2017/06/21 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
JS回调函数深入理解
2019/10/16 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
python实现按任意键继续执行程序
2016/12/30 Python
python调用OpenCV实现人脸识别功能
2018/05/25 Python
用Python配平化学方程式的方法
2019/07/20 Python
pymysql模块的使用(增删改查)详解
2019/09/09 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
2019/10/30 Python
python3爬取torrent种子链接实例
2020/01/16 Python
Python爬虫爬取糗事百科段子实例分享
2020/07/31 Python
css3气泡 css3关键帧动画创建的动态通知气泡
2013/02/26 HTML / CSS
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
英国最大的老式糖果店:A Quarter Of
2017/04/08 全球购物
业务副厂长岗位职责
2014/01/03 职场文书
培训专员岗位职责
2014/02/26 职场文书
作风转变年心得体会
2014/10/22 职场文书
火烧圆明园观后感
2015/06/03 职场文书
《悲惨世界》:比天空更广阔的是人的心灵
2020/01/16 职场文书
Golang之sync.Pool使用详解
2021/05/06 Golang