php无刷新上传文件,php 使用iframe无刷新上传文件

一个最原始最简单的iframe上传例子:

本例中采用iframe名字,所以表单在提交时会在iframe内打开链接(即无刷新,确切的说应该是感觉无刷新)

在表单提交时,调用startUpload方法,当然这是JS定义的。

前台上传页面index.html,主要是一个表单与一个js回调函数。上传文件时,form表单的method、 enctype属性必须和下面代码一样。然后将target的值设为iframe的name,这样就可以实现无刷新上传文件。

上传文件

function CallbackFunction(str){

alert("上传成功");

}

后台上传处理页面uploadfile.php,这段代码为简单的上传代码,没有进行错误及异常处理。上传代码执行完成后,要告诉父页面已经上传完毕了,因此,在这个页面里调用父页面的回调函数CallbackFunction,这个函数可以有参数,形式自己定义。

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 "";

}

?>

以上是用iframe实现无刷新上传文件的简单方法,想要健壮的程序的话需要再细化

例2

PHP利用iframe上传文件并返回值到父框架

淡水其实也是采用这样的做发法的。正好看到有童鞋博客上有这样写。就顺手贴过来了。

if($result)

{

echo "上传成功!文件路径为:".$file2;

echo '';

echo'';

}

文件上传成功后,把文件路径写入一个隐藏的域中(img),然后用DOM原理把隐藏域中的VALUE发送到父框架的表单form1的img文本框中:

ok,再来看看淡水的。

淡水编辑器用了tinyMCE,所以有一点点不一样。

我的form页:

// 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 = '';

break;

case '.jpg':

thecode = '';

break;

//......略过部分......

default :

thecode = 'Download';

break;

}

tinyMCE.execCommand('mceInsertContent',true,thecode);

}

iframe也就是在这个页面里了。

在我的iframe的提交给的php处理里:

$pasteJS = "

$pasteJS .= "parent.InsertHtml("" . $file_ext . "","" . $upload_src . "");n";

$pasteJS .= "n";

echo $pasteJS;

于是上传的文件就跑到tinyMCE的编辑框里了。upload的文件路径也通过userdata会暂存起来,直到写入database。路径保存这块儿,也是在iframe的提交给的php处理文件里的,这里淡水就不多写了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值