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 相关文章推荐
使用数据库保存session的方法
Oct 09 PHP
用PHP制作的意见反馈表源码
Mar 11 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
Jul 15 PHP
PHP实现下载断点续传的方法
Nov 12 PHP
php计算两个日期相差天数的方法
Mar 14 PHP
php获取Google机器人访问足迹的方法
Apr 15 PHP
大家都应该掌握的PHP关联数组使用技巧
Dec 25 PHP
详谈php静态方法及普通方法的区别
Oct 04 PHP
Thinkphp框架中D方法与M方法的区别
Dec 23 PHP
laravel 去掉index.php伪静态的操作方法
Oct 12 PHP
PHP+MySql实现一个简单的留言板
Jul 19 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
Dec 01 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执行SQL文件并将SQL文件导入到数据库
2015/09/17 PHP
PHP中set error handler函数用法小结
2015/11/11 PHP
PHP自定义函数获取汉字首字母的方法
2016/12/01 PHP
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
js里怎么取select标签里的值并修改
2012/12/10 Javascript
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
Javascript WebSocket使用实例介绍(简明入门教程)
2014/04/16 Javascript
Node.js插件的正确编写方式
2014/08/03 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
Javascript与jQuery方法的隐藏与显示
2015/01/19 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
2015/10/10 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
2016/05/12 Javascript
AngularJS之依赖注入模拟实现
2016/08/19 Javascript
基于JQuery实现的跑马灯效果(文字无缝向上翻动)
2016/12/02 Javascript
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
浅谈node的事件机制
2017/10/09 Javascript
Vue.directive 自定义指令的问题小结
2018/03/04 Javascript
node前端模板引擎Jade之标签的基本写法
2018/05/11 Javascript
python处理圆角图片、圆形图片的例子
2014/04/25 Python
推荐11个实用Python库
2015/01/23 Python
python使用socket进行简单网络连接的方法
2015/04/29 Python
Python三级菜单的实例
2017/09/13 Python
Python Image模块基本图像处理操作小结
2019/04/13 Python
python自动化工具之pywinauto实例详解
2019/08/26 Python
Python类绑定方法及非绑定方法实例解析
2020/10/09 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
2020/10/12 Python
白宫黑市官网:White House Black Market
2016/11/17 全球购物
骆驼官方商城:CAMEL
2016/11/22 全球购物
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
自立自强的名人事例
2014/02/10 职场文书
开学寄语大全
2014/04/08 职场文书
个人整改措施落实情况汇报
2014/10/29 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL