1.在文件提交的页面html加上一个隐藏的框架iframe:
<iframe src="" width="0" height="0" style="display:none;" name="tarframe"></iframe>
然后把表单提交到后台的php文件的运行框架设置在隐藏的框架中,实现无刷新页面的上传。
具体代码如下:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="js/jquery-2.2.1.min.js"></script>
<script>
$(function () {
$("#upload_file").change(function(){
$("#uploadFrom").submit();
});
})
function stopSend(str){
str="img/"+str;
var im="<img src='"+str+"'>";
console.log(im);
$("#msg").empty().append(im);
}
</script>
</head>
<body>
<div class="frm">
<form name="uploadFrom" id="uploadFrom" action="test.php" method="post" target="tarframe" enctype="multipart/form-data">
<input type="file" id="upload_file" name="upfile">
</form>
<iframe src="" width="0" height="0" style="display:none;" name="tarframe"></iframe> //隐藏的框架
</div>
<div id="msg">
</div>
</body>
</html>
2.php利用$_FILES['name']获取上传的文件,具体代码实现如下:
<?php
$file=$_FILES['upfile']; //获取上传文件对象
$name=$file['name'];
move_uploaded_file($file['tmp_name'],iconv("UTF-8", "gb2312", "img/".$file["name"])); //保存文件到服务器固定位置,注意设置文件名编码
echo "<script>parent.stopSend('$name')</script>";
把文件保存在服务器对应工程的img文件下