看了一下网上做的无刷新文件上传都用了js插件,实际上还有另一种技术去实现php无刷新文件上传。就是用一个隐藏的iframe框架做容器,让刷新的动作发生在框架中,而不刷新当前页面,来达到无刷新的效果。其实根本没用到ajax,简单的框架加一些js代码就可以实现无刷新上传文件了。
效果演示:
(未选择文件时会提示选择文件)
(上传成功后,"123abc"仍然存在,则表明没有刷新)
实现这个功能,只用到了3个文件,一个静态界面页面,一个php处理页面,一个jquery库文件。
index.html文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>php实现无刷新文件上传源码-代潇瑞博客</title>
<script type="text/javascript" src="jquery-1.8.0.min.js"></script>
<script type="text/javascript">
function ajax_upload(fname){
if(fname){
$(".label1").html("上传成功:("+fname+")");
var obj = document.getElementById('upfile');
obj.outerHTML=obj.outerHTML;
}else{
$(".label1").html("上传失败!!");
}
$("#upButton").val("上 传").removeAttr("disabled");
}
function check_file(){
if($("#upfile").val()==""){
$(".label1").html("请先选择一个文件!");
return false;
}else{
$("#upButton").val("上传中...").attr("disabled","disabled");
return true;
}
}
</script>
</head>
<body>
<p><input type="text" /></p>
<form action="deal_upload.php" method="post" target="upimgf" enctype="multipart/form-data" onsubmit="return check_file()">
<p>请选择图片:<input type="file" name="img" id="upfile" /></p>
<p><label class="label1" style="color:red;"></label></p>
<p><input type="submit" value="上 传" id="upButton" /></p>
</form>
<iframe name="upimgf" style="display:none;"></iframe>
</body>
</html>
deal_upload.php文件:
<?php
header("Content-type:text/html;charset=utf-8");
$up_file = $_FILES['img'];
$file_name = $up_file['name'];
//print_r($file_name);
if(move_uploaded_file($up_file['tmp_name'],iconv("utf-8","gb2312",$file_name))){
echo "<script> parent.ajax_upload('".$file_name."'); </script>";
}else{
echo "<script> parent.ajax_upload(''); </script>";
}
?>
源码下载:php无刷新上传文件范例源码.zip
其实整个技术的关键点在两个地方,第一个就是<form>中的target="upimgf",意思是在框架中提交表单;第二个就是parent.ajax_upload()调用框架外的函数,从而可以对返回的值进行操作。
文章出自:https://www.daixiaorui.com/read/109.html 本站所有文章,除注明出处外皆为原创,转载请注明本文地址,版权所有。
蛋仔派对无限蛋币http://www.wzryzs.com/
666
666
很好的方法值得推荐
gg修改器https://www.guiyangtax.com/ 葫芦侠http://www.booj.net/ 八门神器http://www.tusovok.net/
gg修改器https://www.guiyangtax.com/ 葫芦侠http://www.booj.net/ 八门神器http://www.tusovok.net/