php+iframe 实现上传文件功能示例

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

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

具体的实现步骤

1.捕捉表单提交事件

2.创建一个iframe

3.修改表单的target,指向iframe

4.删除iframe

file.html代码如下:

  1. <!DOCTYPE HTML>
  2. <html >
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. </head>
  7. <body>
  8. <form action="upfile.php" method="post" enctype="multipart/form-data">
  9. <input type="file" name="file" />
  10. <input type="submit" name="submit" value="上传" />
  11. </form>
  12. <div ></div>
  13. </body>
  14. <script type="text/javascript" src="./jquery.js"></script>
  15. <script type="text/javascript">
  16. $("#upfileForm").bind("submit", function() {
  17. var ifrName = 'upfile' + Math.random();
  18. var ifr = $("<iframe name='" + ifrName + "' width='0' height='0' frame></iframe>");
  19. $("body").append(ifr);
  20. $(this).attr("target", ifrName);
  21. });
  22. </script>
  23. </html>

upfile.php代码如下:

  1. <?php
  2. $uploadDir = './upload/';
  3. if(!file_exists($uploadDir)) {
  4. @mkdir($uploadDir, 0777, true);
  5. }
  6. $uploadFile = $uploadDir . basename($_FILES['file']['name']);
  7. if(move_uploaded_file($_FILES['file']['tmp_name'], $uploadFile)) {
  8. echo "<script>parent.document.getElementById('result').innerHTML='OK';</script>";
  9. } else {
  10. echo "<script>parent.document.getElementById('result').innerHTML='NO';</script>";
  11. }