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基础知识:类与对象(5) static
Dec 13 PHP
mac下使用brew配置环境的步骤分享
May 23 PHP
PHP中计算字符串相似度的函数代码
Dec 29 PHP
PHP设计模式之调解者模式的深入解析
Jun 13 PHP
解析curl提交GET,POST,Cookie的简单方法
Jun 29 PHP
一个PHP针对数字的加密解密类
Mar 20 PHP
写一段简单的PHP建立文件夹代码
Jan 06 PHP
为你总结一些php信息函数
Oct 21 PHP
Yii使用Captcha验证码的方法
Dec 28 PHP
详解PHP中的null合并运算符
Dec 30 PHP
基于php流程控制语句和循环控制语句(讲解)
Oct 23 PHP
PHP CURL实现模拟登陆并上传文件操作示例
Jan 02 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
雄兵连:第三季确定会出,不过时间未定,鹤熙是第三季的主角!
2020/03/13 国漫
PHP备份/还原MySQL数据库的代码
2011/01/06 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
php版微信自定义回复功能示例
2016/12/05 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
php-fpm服务启动脚本的方法
2018/04/27 PHP
使用JavaScript库还是自己写代码?
2010/01/28 Javascript
javascript加号&quot;+&quot;的二义性说明
2013/03/04 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
JS脚本实现动态给标签控件添加事件的方法
2016/06/02 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
卸载安装Node.js与npm过程详解
2016/08/15 Javascript
angular仿支付宝密码框输入效果
2017/03/25 Javascript
JavaScript标准对象_动力节点Java学院整理
2017/06/27 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
将Vue组件库更换为按需加载的方法步骤
2020/05/06 Javascript
Python完全新手教程
2007/02/08 Python
Python中实现参数类型检查的简单方法
2015/04/21 Python
对python3 urllib包与http包的使用详解
2018/05/10 Python
python删除本地夹里重复文件的方法
2020/11/19 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
keras.utils.to_categorical和one hot格式解析
2020/07/02 Python
python matplotlib库的基本使用
2020/09/23 Python
香港No.1得奖零食网:香港零食大王
2016/07/22 全球购物
Needle & Thread官网:英国仙女品牌
2018/01/13 全球购物
全球工业:Global Industrial
2020/02/01 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
小型女装店的创业计划书
2014/01/09 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
css filter和getUserMedia的联合使用
2022/02/24 HTML / CSS
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL
Android自定义双向滑动控件
2022/04/19 Java/Android