iframe无刷新文件上传实现程序
发布:smiling 来源: PHP粉丝网 添加日期:2014-01-05 22:30:29 浏览: 评论:0
iframe无刷新文件上传其实就是在当前页面打开了上传程序的页面,有点像ajax局部刷新一个,只是我们把它放到了iframe页面中上传,同时我们把iframe页面给隐藏了。
一个最原始最简单的iframe上传例子:本例中采用iframe名字,所以表单在提交时会在iframe内打开链接(即无刷新,确切的说应该是感觉无刷新),在表单提交时,调用startUpload方法,当然这是JS定义的。
前台上传页面index.html,主要是一个表单与一个js回调函数,上传文件时,form表单的method、 enctype属性必须和下面代码一样。然后将target的值设为iframe的name,这样就可以实现无刷新上传文件,代码如下:
- <title>上传文件</title>
- <script>
- function CallbackFunction(str){
- alert("上传成功");
- }
- </script>
- <form action="uploadfile.php" enctype="multipart/form-data" method="post" target="iframeUpload">
- <iframe name="iframeUpload" src="" width="350" height="35" frameborder=0 SCROLLING="no" style="display:NONE"></iframe>
- <input id="test_file" name="test_file" type="file">
- <input value="上传文件" type="submit">
- </form>
后台上传处理页面uploadfile.php,这段代码为简单的上传代码,没有进行错误及异常处理。上传代码执行完成后,要告诉父页面已经上传完毕了,因此,在这个页面里调用父页面的回调函数CallbackFunction,这个函数可以有参数,形式自己定义,代码如下:
- <?php
- set_time_limit(0);
- if($_SERVER['REQUEST_METHOD']=='POST') {
- move_uploaded_file($_FILES["test_file"]["tmp_name"],
- dirname($_SERVER['SCRIPT_FILENAME'])."/UploadTemp/" . $_FILES["test_file"]["name"]);
- echo "<script>window.parent.CallbackFunction();</script>";
- }
- ?>
以上是用iframe实现无刷新上传文件的简单方法,想要健壮的程序的话需要再细化.
PHP无刷新实例2:PHP利用iframe上传文件并返回值到父框架,其实也是采用这样的做发法的,正好看到有童鞋博客上有这样写,就顺手贴过来了,代码如下:
- if($result)
- {
- echo "上传成功!文件路径为:".$file2;
- echo '<input name="img" type="hidden" value="'.$file2.'" id="img"/>';
- echo'<script>parent.document.form1.img.value=document.getElementById("img").value;</script>';
- }
文件上传成功后,把文件路径写入一个隐藏的域中(img),然后用DOM原理把隐藏域中的VALUE发送到父框架的表单form1的img文本框中:ok,编辑器用了tinyMCE,所以有一点点不一样,我的form页,代码如下:
- <script src="tiny_mce/tiny_mce.js" type="text/javascript"></script>
- <script type="text/javascript">
- // O2k7 skin
- tinyMCE.init({
- // General options
- mode : "exact",
- elements : "content",
- theme : "advanced",
- skin : "o2k7",
- language : "zh",
- relative_urls : false,
- //....略过部分...
- });
- function InsertHtml(type,path){
- type=type.toLowerCase()
- switch(type){
- case '.gif':
- thecode = '<img src="'+path+'" alt=""/>';
- break;
- case '.jpg':
- thecode = '<img src="'+path+'" alt=""/>';
- break;
- //......略过部分......
- default :
- thecode = '<a href="'+path+'" target="_blank">Download</a>';
- break;
- }
- tinyMCE.execCommand('mceInsertContent',true,thecode);
- }
- </script>
iframe也就是在这个页面里了,在我的iframe的提交给的php处理里,代码如下:
- $pasteJS = "<script type=text/javascript>n";
- $pasteJS .= "parent.InsertHtml("" . $file_ext . "","" . $upload_src . "");n";
- $pasteJS .= "</script>n";
- echo $pasteJS;
于是上传的文件就跑到tinyMCE的编辑框里了,upload的文件路径也通过userdata会暂存起来,直到写入database。路径保存这块儿,也是在iframe的提交给的php处理文件里的,这里就不多写了。
Tags: iframe 无刷新 文件上传
- 上一篇:php下实现文件下载实现代码
- 下一篇:php上传文件与图片重命名方法总结
相关文章
- ·php iframe 无刷新文件上传代码(2013-12-23)
- ·php iframe实现无刷新文件上传(2014-09-02)
- ·php无刷新利用iframe实现页面无刷新上传文件(2014-09-08)
- ·php+iframe实现无刷新上传文件例子(2015-04-09)
- ·PHP+iFrame实现页面无需刷新的异步文件上传(2021-04-12)
- ·PHP+iframe模拟Ajax上传文件功能示例(2021-12-01)
- ·PHP jQuery ajax无刷新文件下载次数统计(2014-01-06)
- ·PHP+Ajax实现文件无刷新上传文件代码(2014-08-26)
- ·一个PHP无刷新上传文件程序代码(2014-08-27)
- ·PHP+Ajax图片上传并且无刷新生成缩略图预览(2016-01-28)
- ·php+ajax实现无刷新文件上传功能(ajaxuploadfile)(2021-09-03)
- ·php+js实现的无刷新下载文件功能示例(2021-12-11)
- ·php实现文件上传的程序代码(2013-11-13)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)