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 相关文章推荐
php4的session功能评述(三)
Oct 09 PHP
php继承的一个应用
Sep 06 PHP
IIS+fastcgi下PHP运行超时问题的解决办法详解
Jun 20 PHP
解析PHP 5.5 新特性
Jul 02 PHP
PHP使用glob函数遍历目录或文件夹的方法
Dec 16 PHP
Laravel 5框架学习之用户认证
Apr 09 PHP
简单介绍PHP非阻塞模式
Mar 03 PHP
Laravel中注册Facades的步骤详解
Mar 16 PHP
php版银联支付接口开发简明教程
Oct 14 PHP
Laravel框架用户登陆身份验证实现方法详解
Sep 14 PHP
PHP实现用session来实现记录用户登陆信息
Oct 15 PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
May 30 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
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
2012/06/17 PHP
php 微信公众平台开发模式实现多客服的实例代码
2016/11/07 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
javascript中attachEvent用法实例分析
2015/05/14 Javascript
JavaScript中的原型prototype完全解析
2016/05/10 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
深入理解jquery中extend的实现
2016/12/22 Javascript
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
微信小程序 动态绑定事件并实现事件修改样式
2017/04/13 Javascript
Vue 创建组件的两种方法小结(必看)
2018/02/23 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
CryptoJS中AES实现前后端通用加解密技术
2018/12/18 Javascript
jQuery实现的简单日历组件定义与用法示例
2018/12/24 jQuery
node app 打包工具pkg的具体使用
2019/01/17 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
2019/11/13 Javascript
用python实现批量重命名文件的代码
2012/05/25 Python
python多线程方式执行多个bat代码
2016/06/07 Python
Python运算符重载详解及实例代码
2017/03/07 Python
Python2.7读取PDF文件的方法示例
2017/07/13 Python
Python从函数参数类型引出元组实例分析
2019/05/28 Python
利用Python代码实现一键抠背景功能
2019/12/29 Python
New Balance法国官方网站:购买鞋子和服装
2019/09/01 全球购物
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
生产部统计员岗位职责
2014/01/05 职场文书
电子信息专业应届生自荐信
2014/06/04 职场文书
反邪教标语
2014/06/23 职场文书
领导干部群众路线对照检查材料
2014/11/05 职场文书
十七岁的单车观后感
2015/06/12 职场文书
2016应届毕业生实习心得体会
2015/10/09 职场文书