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代码飞起来的40条小技巧(提升php效率)
Apr 12 PHP
PHP is_dir() 判断给定文件名是否是一个目录
May 10 PHP
Windows7下PHP开发环境安装配置图文方法
May 20 PHP
使用XDebug调试及单元测试覆盖率分析
Jan 27 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
May 18 PHP
php自动获取字符串编码函数mb_detect_encoding
May 31 PHP
一个经典的PHP文件上传类分享
Nov 18 PHP
功能强大的php文件上传类
Aug 29 PHP
PHP页面输出时js设置input框的选中值
Sep 30 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
Yii框架日志操作图文与实例详解
Sep 09 PHP
PHP实现微信公众号验证Token的示例代码
Dec 16 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/11/28 PHP
php下批量挂马和批量清马代码
2011/02/27 PHP
PHP中的闭包(匿名函数)浅析
2015/02/07 PHP
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
2012/03/14 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
JS实现的5级联动Select下拉选择框实例
2015/08/17 Javascript
每天一篇javascript学习小结(面向对象编程)
2015/11/20 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
通过jsonp获取json数据实现AJAX跨域请求
2017/01/22 Javascript
微信小程序开发animation心跳动画效果
2017/08/16 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
2017/08/22 Javascript
BootStrap数据表格实例代码
2017/09/13 Javascript
vue父组件中获取子组件中的数据(实例讲解)
2017/09/27 Javascript
浅谈Angular 观察者模式理解
2018/11/01 Javascript
[05:16]《大圣!大圣》——DOTA2新英雄齐天大圣配音李世宏老师专访
2016/12/13 DOTA
python简单实现基数排序算法
2015/05/16 Python
Django学习笔记之Class-Based-View
2017/02/15 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
Python进程间通信Queue实例解析
2018/01/25 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
python-opencv颜色提取分割方法
2018/12/08 Python
python 获取页面表格数据存放到csv中的方法
2018/12/26 Python
Python解析json时提示“string indices must be integers”问题解决方法
2019/07/31 Python
flask开启多线程的具体方法
2020/08/02 Python
StubHub希腊:购买体育赛事、音乐会和剧院门票
2019/08/03 全球购物
小学敬老月活动方案
2014/02/11 职场文书
校园安全标语
2014/06/07 职场文书
2014高中生入党思想汇报范文
2014/09/13 职场文书
投资意向协议书
2015/01/29 职场文书
先进个人总结范文
2015/02/15 职场文书
支行行长岗位职责
2015/02/15 职场文书
黑暗中的舞者观后感
2015/06/18 职场文书
公司开业主持词
2015/07/02 职场文书
幼儿园奖惩制度范本
2015/08/05 职场文书
初三化学教学反思
2016/02/22 职场文书
Vue如何清空对象
2022/03/03 Vue.js