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 相关文章推荐
JAVA/JSP学习系列之七
Oct 09 PHP
php实现的MySQL通用查询程序
Mar 11 PHP
php 特殊字符处理函数
Sep 05 PHP
php生成静态文件的多种方法分享
Jul 17 PHP
php中选择什么接口(mysql、mysqli)访问mysql
Feb 06 PHP
php使用cookie保存登录用户名的方法
Jan 26 PHP
php字符串按照单词进行反转的方法
Mar 14 PHP
php基于curl扩展制作跨平台的restfule 接口
May 11 PHP
PHP实现HTTP断点续传的方法
Jun 17 PHP
PHP实现接收二进制流转换成图片的方法
Jan 10 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
Feb 09 PHP
php实现生成带二维码图片并强制下载功能
Feb 24 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开发工具之vs2005图解
2008/01/12 PHP
thinkPHP中volist标签用法示例
2016/12/06 PHP
php 类中的常量、静态属性、非静态属性的区别
2017/04/09 PHP
jQuery数组处理方法汇总
2011/06/20 Javascript
为EasyUI的Tab标签添加右键菜单的方法
2012/07/14 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
js 删除数组的几种方法小结
2014/02/21 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
2014/06/16 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
javascript实现避免页面按钮重复提交
2015/01/08 Javascript
深入解读JavaScript中的Hoisting机制
2015/08/12 Javascript
JS实现下拉菜单赋值到文本框的方法
2015/08/18 Javascript
给angular加上动画效遇到的问题总结
2016/02/17 Javascript
基于JS实现textarea中获取动态剩余字数的方法
2016/05/25 Javascript
jQuery实现导航滚动到指定内容效果完整实例【附demo源码下载】
2016/09/20 Javascript
JS仿淘宝搜索框用户输入事件的实现
2017/06/19 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
原生js代码能实现call和bind吗
2019/07/31 Javascript
vue实现浏览器全屏展示功能
2019/11/27 Javascript
微信小程序实现点击导航条切换页面
2020/11/19 Javascript
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
tensorflow入门之训练简单的神经网络方法
2018/02/26 Python
Python常见工厂函数用法示例
2018/03/21 Python
利用Python产生加密表和解密表的实现方法
2019/10/15 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
利用css3-animation实现逐帧动画效果
2016/03/10 HTML / CSS
兰蔻加拿大官方网站:Lancome加拿大
2016/08/05 全球购物
澳大利亚婴儿、幼儿和儿童在线设计师商店:Smooch Baby
2019/02/16 全球购物
公积金单位接收函
2014/01/11 职场文书
今冬明春火灾防控工作方案
2014/05/29 职场文书
写得不错的求职信范文
2014/07/11 职场文书
机关党员公开承诺书
2014/08/30 职场文书
群众路线四风对照检查材料
2014/11/04 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
大学生自我鉴定怎么写
2019/05/07 职场文书