PHP+iframe模拟Ajax上传文件功能示例


Posted in PHP onJuly 02, 2019

本文实例讲述了PHP+iframe模拟Ajax上传文件功能。分享给大家供大家参考,具体如下:

xmlhttprequest level 1中,Ajax是不能够上传文件的,因为js不能操作本地文件,但是市场上有一些Ajax异步上传文件的插件,是怎么完成的呢?答案:可以使用iframe模拟Ajax上传文件。接下来博主将使用iframe来模拟Ajax来上传文件。

首先看一下效果图:

PHP+iframe模拟Ajax上传文件功能示例

文件结构图:

PHP+iframe模拟Ajax上传文件功能示例

09-iframe-upload.html文件:

页面中有一个表单,表单中有一个上传文件按钮和提交按钮,点击提交按钮执行ajaxUpload函数,然后动态创建iframe标签,让其不可见,最后设置表单的target属性指向iframe。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>iframe模拟Ajax上传文件</title>
  <link rel="stylesheet" href="">
</head>
<script src="http://libs.baidu.com/jquery/1.7.2/jquery.min.js"></script>
<script>
  /**
   * 文件上传
   * @return bool 是否提交表单
   * 1、捕捉表单提交的动作
   * 2、动态创建iframe标签,然其不可见
   * 3、设置表单的target属性指向iframe
   */
  function ajaxUpload(){
    var iframeName = 'upload'+Math.random();//给iframe取名
    $('<iframe name='+iframeName+' width="0" height="0" frameborder="0"></iframe>').appendTo($('body'));//动态创建iframe
    $('form:first').attr('target',iframeName);//设置form的target属性
    $('#progress').html('<img src="progress.jpg"/>');//显示上传是否成功
    //return false;
  }
</script>
<body>
  <h1>iframe模拟Ajax上传文件</h1>
  <h2 id="progress"></h2>
  <form action="09-iframe-upload.php" method="post" enctype="multipart/form-data" onsubmit="return ajaxUpload();">
    <p><input type="file" name="pic"/></p>
    <p><input type="submit" value="提交" /></p>
  </form>
</body>
</html>

09-iframe-upload.php文件:

首先延时3秒,为了能看到加载的图片,然后判断是否有上传文件,然后返回一段Js代码,这段js是在页面中显示是否上传成功

<?php
/**
 * iframe模拟Ajax上传文件
 * @author webbc
 */
sleep(3);//延时3秒
if(empty($_FILES)){
  echo 'no file';
}
$error = $_FILES['pic']['error'] == 0?'succ':'fail';//判断上传是否成功
echo "<script>parent.document.getElementById('progress').innerHTML='$error'</script>";//显示上传是否成功
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 数字左侧自动补0
Mar 31 PHP
PHP 一个随机字符串生成代码
May 26 PHP
php 数组动态添加实现代码(最土团购系统的价格排序)
Dec 30 PHP
PHP的PSR规范中文版
Sep 28 PHP
PHP生成RSS文件类实例
Dec 05 PHP
PHP自动生成表单代码分享
Jun 19 PHP
php基于session实现数据库交互的类实例
Aug 03 PHP
深入剖析PHP中printf()函数格式化使用
May 23 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
Dec 19 PHP
Laravel框架下的Contracts契约详解
Mar 17 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
May 14 PHP
php 文件上传至OSS及删除远程阿里云OSS文件
Jul 04 PHP
PHP使用HTML5 FormData对象提交表单操作示例
Jul 02 #PHP
PHP实现带进度条的Ajax文件上传功能示例
Jul 02 #PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
Jul 01 #PHP
PHP大文件切割上传并带进度条功能示例
Jul 01 #PHP
PHP大文件切割上传功能实例分析
Jul 01 #PHP
PHP使用反向Ajax技术实现在线客服系统详解
Jul 01 #PHP
PHP封装cURL工具类与应用示例
Jul 01 #PHP
You might like
php mb_substr()函数截取中文字符串应用示例
2014/07/29 PHP
destoon切换城市后实现logo旁边显示地区名称的方法
2014/08/21 PHP
WordPress中获取所使用的模板的页面ID的简单方法
2015/12/31 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
ThinkPHP 3.2.2实现事务操作的方法
2017/05/05 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
2019/07/24 PHP
理解JavaScript中的对象 推荐
2011/01/09 Javascript
js继承call()和apply()方法总结
2014/12/08 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
使用bootstrap实现多窗口和拖动效果
2016/09/22 Javascript
探索Javascript中this的奥秘
2016/12/11 Javascript
servlet+jquery实现文件上传进度条示例代码
2017/01/25 Javascript
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
关于微信小程序map组件z-index的层级问题分析
2019/07/09 Javascript
js实现移动端tab切换时下划线滑动效果
2019/09/08 Javascript
在elementui中Notification组件添加点击事件实例
2020/11/11 Javascript
python 判断自定义对象类型
2009/03/21 Python
Python中enumerate函数代码解析
2017/10/31 Python
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
python实现飞机大战游戏(pygame版)
2020/10/26 Python
python中的垃圾回收(GC)机制
2020/09/21 Python
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
Sperry官网:帆船鞋创始品牌
2016/09/07 全球购物
台湾7-ELEVEN线上购物中心:7-11
2021/01/21 全球购物
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
简历自荐信
2013/12/02 职场文书
应聘护理专业毕业自荐书范文
2014/02/12 职场文书
本科毕业生求职自荐信
2014/04/09 职场文书
搞笑爱情保证书
2014/04/29 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
小石潭记导游词
2015/02/03 职场文书
检察院起诉意见书
2015/05/20 职场文书
疾病证明书
2015/06/19 职场文书
闭幕词的写作格式与范文!
2019/06/24 职场文书
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL