一个最原始最简单的 上传例子:
本例中采用 名字,所以表单在提交时会在 内打开链接(即无刷新,确切的说应该是感觉无刷新)
在表单提交时,调用startUpload方法,当然这是JS定义的。
前台上传页面index.html,主要是一个表单与一个js回调函数。上传文件时,form表单的method、 enctype属性必须和下面代码一样。然后将target的值设为 的name,这样就可以实现无刷新上传文件。
< >上传文件</ >
< >
function CallbackFunction(str){
alert(\"上传成功\");
}
</ >
<form action=\"uploadfile.php\" enctype=\"multipart/form-data\" method=\"post\" target=\" Upload\">
< name=\" Upload\" src=\"\" width=\"350\" height=\"35\" border=0 SCROLLING=\"no\" style=\"display:NONE\"></ >
<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[\' _FILENAME\']).\"/UploadTemp/\" . $_FILES[\"test_file\"][\"name\"]);
echo \"< >window.parent.CallbackFunction();</ >\";
}
?>
以上是用 实现无刷新上传文件的简单方法,想要健壮的程序的话需要再细化
例2
PHP利用 上传文件并返回值到父框架
淡水其实也是采用这样的做发法的。正好看到有童鞋博客上有这样写。就顺手贴过来了。
if($result)
{
echo \"上传成功!文件路径为:\".$file2;
echo \'<input name=\"img\" type=\"hidden\" value=\"\'.$file2.\'\" id=\"img\"/>\';
echo\'< >parent.document.form1.img.value=document.getElementById(\"img\").value;</ >\';
}
文件上传成功后,把文件路径写入一个隐藏的域中(img),然后用DOM原理把隐藏域中的VALUE发送到父框架的表单form1的img文本框中:
ok,再来看看淡水的。
淡水编辑器用了tinyMCE,所以有一点点不一样。
我的form页:
< src=\"tiny_mce/tiny_mce.js\" type=\"text/ \"></ >
< type=\"text/ \">
// 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);
}
</ >
也就是在这个页面里了。
在我的 的提交给的php处理里:
$pasteJS = \"< type=text/ >n\";
$pasteJS .= \"parent.InsertHtml(\"\" . $file_ext . \"\",\"\" . $upload_src . \"\");n\";
$pasteJS .= \"</ >n\";
echo $pasteJS;
于是上传的文件就跑到tinyMCE的编辑框里了。upload的文件路径也通过userdata会暂存起来,直到写入data 。路径保存这块儿,也是在 的提交给的php处理文件里的,这里淡水就不多写了。
继续阅读与本文标签相同的文章
上一篇 :
Puppet:维护运行环境一致性的利器
-
城市数字化后,新一代内生安全系统可全方位保护
2026-05-14栏目: 教程
-
谷歌也来“唱衰”5G,5G手机只会徒增功耗?为何这么说?
2026-05-14栏目: 教程
-
量子信息和量子技术白皮书合肥宣言在中科大发布
2026-05-14栏目: 教程
-
微信悄悄更新一新功能,来看看!
2026-05-14栏目: 教程
-
打破三大运营商垄断,第四大运营商终于来了!
2026-05-14栏目: 教程
