说道上传图片,大家并不陌生,不过,在以后开发的项目中,可能并不会让你使用提交刷新页面式的上传图片,比如上传头像,按照常理,肯定是在相册选择照片之后,确认上传,而肯定不会通过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头像上传
# php上传头像实例
# php实现头像上传预览功能
# php实现文件上传及头像预览功能
# 针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
# php视频拍照上传头像功能实现代码分享
# PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
# php+js iframe实现上传头像界面无跳转
# 上传
# 上传图片
# 表单
# 第一种
# 返回值
# 的是
# 是在
# 模态
# 两种
# 就没
# 我为
# 我先
# 设置为
# 以对
# 该文件
# 回调
# 第二种
# 会让你
# 大家多多
# 无标题文档
相关文章:
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
三星网站视频制作教程下载,三星w23网页如何全屏?
网站app免费制作软件,能免费看各大网站视频的手机app?
香港服务器租用费用高吗?如何避免常见误区?
如何在Windows服务器上快速搭建网站?
个人摄影网站制作流程,摄影爱好者都去什么网站?
洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?
如何批量查询域名的建站时间记录?
已有域名和空间,如何快速搭建网站?
Swift开发中switch语句值绑定模式
如何通过VPS建站无需域名直接访问?
清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?
专业商城网站制作公司有哪些,pi商城官网是哪个?
宝塔新建站点报错如何解决?
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
建站主机服务器选型指南与性能优化方案解析
已有域名能否直接搭建网站?
浅谈Javascript中的Label语句
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
创业网站制作流程,创业网站可靠吗?
如何通过FTP服务器快速搭建网站?
h5在线制作网站电脑版下载,h5网页制作软件?
如何通过PHP快速构建高效问答网站功能?
高端建站如何打造兼具美学与转化的品牌官网?
建站168自助建站系统:快速模板定制与SEO优化指南
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
php json中文编码为null的解决办法
网站制作网站,深圳做网站哪家比较好?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
如何通过服务器快速搭建网站?完整步骤解析
定制建站策划方案_专业建站与网站建设方案一站式指南
音乐网站服务器如何优化API响应速度?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
建站之星图片链接生成指南:自助建站与智能设计教程
如何在腾讯云服务器快速搭建个人网站?
网站制作企业,网站的banner和导航栏是指什么?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
如何在万网自助建站平台快速创建网站?
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
建站VPS配置与SEO优化指南:关键词排名提升策略
南宁网站建设制作定制,南宁网站建设可以定制吗?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
*请认真填写需求信息,我们会在24小时内与您取得联系。