本文实例讲述了php+iframe 实现上传文件功能。分享给大家供大家参考,具体如下:

我们通过动态的创建iframe,修改form的target,来实现无跳转的文件上传。

具体的实现步骤

1.捕捉表单提交事件
2.创建一个iframe
3.修改表单的target,指向iframe
4.删除iframe

file.html代码如下:

<!doctype html>
<html lang="zh-cn">
<head>
 <meta charset="utf-8">
 <title></title>
</head>
<body>
 <form action="upfile.php" method="post" id="upfileform" enctype="multipart/form-data">
  <input type="file" name="file" />
  <input type="submit" name="submit" value="上传" />
 </form>
 <div id="result"></div>
</body>
<script type="text/javascript" src="./jquery.js"></script>
<script type="text/javascript">
$("#upfileform").bind("submit", function() {
 var ifrname = 'upfile' + math.random();
 var ifr = $("<iframe name='" + ifrname + "' width='0' height='0' frameborder='0'></iframe>");
 $("body").append(ifr);
 $(this).attr("target", ifrname);
});
</script>
</html>

upfile.php代码如下:

<?php
$uploaddir = './upload/';
if(!file_exists($uploaddir)) {
  @mkdir($uploaddir, 0777, true);
}
$uploadfile = $uploaddir . basename($_files['file']['name']);
if(move_uploaded_file($_files['file']['tmp_name'], $uploadfile)) {
  echo "<script>parent.document.getelementbyid('result').innerhtml='ok';</script>";
} else {
  echo "<script>parent.document.getelementbyid('result').innerhtml='no';</script>";
}