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边学边教》(01.开篇――准备工作)
Dec 13 PHP
用php实现像JSP,ASP里Application那样的全局变量
Jan 12 PHP
PHP管理内存函数 memory_get_usage()使用介绍
Sep 23 PHP
php实现的漂亮分页方法
Apr 17 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
Dec 16 PHP
php使用cookie显示用户上次访问网站日期的方法
Jan 26 PHP
初识laravel5
Mar 02 PHP
PHP设计模式之适配器模式代码实例
May 11 PHP
修改WordPress中文章编辑器的样式的方法详解
Dec 15 PHP
php arsort 数组降序排序详细介绍
Nov 17 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
PHP保存Base64图片base64_decode的问题整理
Nov 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 选项及相关信息函数库
2006/12/04 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
2016/03/18 PHP
ThinkPHP5分页paginate代码实例解析
2020/11/10 PHP
理解Javascript_13_执行模型详解
2010/10/20 Javascript
关于jQuery的inArray 方法介绍
2011/10/08 Javascript
js 控制下拉菜单刷新的方法
2013/03/03 Javascript
js中继承的几种用法总结(apply,call,prototype)
2013/12/26 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
js使用cookie记录用户名的方法
2015/11/26 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
2016/12/08 Javascript
Vue框架里使用Swiper的方法示例
2018/09/20 Javascript
angular中的post请求处理示例详解
2020/06/30 Javascript
JavaScript indexOf()原理及使用方法详解
2020/07/09 Javascript
Python的Django框架安装全攻略
2015/07/15 Python
使用python验证代理ip是否可用的实现方法
2018/07/25 Python
python的concat等多种用法详解
2018/11/28 Python
Django如何使用第三方服务发送电子邮件
2019/08/14 Python
如何基于Python批量下载音乐
2019/11/11 Python
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
入党自我鉴定范文
2013/10/04 职场文书
教师职称自我鉴定
2014/02/12 职场文书
《陋室铭》教学反思
2014/02/26 职场文书
机关保密承诺书
2014/06/03 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
计算机实训报告范文
2014/11/05 职场文书
贪污受贿检讨书范文
2014/11/19 职场文书
2014年党员发展工作总结
2014/12/02 职场文书
搞笑老公保证书
2015/02/26 职场文书
煤矿安全保证书
2015/02/27 职场文书
小学体育组工作总结2015
2015/07/21 职场文书
mysql 8.0.24 安装配置方法图文教程
2021/05/12 MySQL
利用Python实现模拟登录知乎
2022/05/25 Python
MySQL自定义函数及触发器
2022/08/05 MySQL