找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1585|回复: 0
打印 上一主题 下一主题

PHP+iFrame实现页面无需刷新的异步文件上传

[复制链接]

2536

主题

2536

帖子

7532

积分

论坛元老

Rank: 8Rank: 8

积分
7532
跳转到指定楼层
楼主
发表于 2018-2-14 05:54:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            本文实例讲述了PHP+iFrame实现页面无需刷新的异步文件上传,是非常实用的常见技巧。分享给大家供大家参考。具体分析如下:
说到iframe,现在用它的人是越来越少了,并且很多人都相信它应该被AJAX所取代,的确如此,因为AJAX太出色了。
不过有一种情况的实现我还是选择了iframe,这就是本文要说的文件的异步上传,感兴趣的可以试试,如果用原生的AJAX来实现应该是要复杂的多。
先来给初学者补补基础知识:
1. 在iframe标签一般会指定其name特性以于标识;
2. 在form表单中通过action(目标地址)和target(目标窗口,默认为_self)来确定提交的目的地;
3. 将form中的target指向iframe的name,则可将表单提交到了隐藏框架iframe中;
4. iframe里的内容实际上也是一个页面,其中的js里的parent对象指代父页面,即嵌入iframe的页面;
5. PHP中用move_uploaded_file()函数来实现文件上传,$_FILES数组存储有上传文件的相关信息。
本文实现的是一个用户选择了头像文件后立刻上传并显示在页面上的例子,废话不多说,思路是这样的:
1. 在表单中嵌入一个iframe,设定好name特性值;
2. 在选择文件上传的控件的值改变时触发一个js函数,该函数将表单提交至iframe,而iframe内嵌的页面用来处理文件上传;
3. 在iframe中完成了文件上传之后,在js中通过parent来操作父页面,在特定的标签内显示图片,并将图片的保存地址赋给一个隐藏域;
4. 回到原来的页面,现在既完成了文件的上传,也在隐藏域内记录了文件的路径,整个过程没有刷新页面;
5. 最后用户只需提交原来的页面时重置表单的action和target属性的值即可。
下面是效果截图和实现的代码:

upload.php页面如下:




iFrame异步文件上传


iFrame异步文件上传

  用户名:

  上传头像:
  
  
   
  

上传成功!
';
  $html .= '用户名:'.htmlspecialchars($_POST['username']).'
';
  $html .= '头像地址:'.htmlspecialchars($_POST['photo']).'
';
  $html .= '
[img]'.htmlspecialchars($_POST['photo']).'[/img]
';
  echo $html;
}
?>



proceedupload.php页面如下:



')">



感兴趣的朋友可以测试运行一下本文实例,相信本文所述对大家PHP程序设计的学习有一定的借鉴价值。
            
            
您可能感兴趣的文章:
  • php利用iframe实现无刷新文件上传功能的代码
  • php+iframe实现隐藏无刷新上传文件
  • 通过隐藏iframe实现无刷新上传文件操作
  • 用iframe实现不刷新整个页面上传图片的实例
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端