保存ajax控件的文件上传


File upload with preserving the ajax controls

我在上传文件时遇到了一个小问题。

因此,您可以单击一个按钮,然后出现一个窗口(ajax支持),选择您的文件并按下上传。问题是,一旦文件上传到浏览器,页面就会重新加载并关闭窗口。并且没有文件:(.我已经在没有窗口的情况下测试了代码,它们工作得很好。你推荐什么?

这是我上传的代码

    <html>
<body>
<h2 class="">Step 1: Add the video</h2>
<p class="note">Your text goes here</p>

<form method="post" enctype="multipart/form-data">
File Name:<input type="text" name="name"/>
<br/><br/>
Browse: <input type="file" name="file"/>
<br/><br/>
<input type="submit" id='button' Value="Upload the video file" name="submit"/>
</form>
<?php
if(isset($_POST["submit"]))
{
$filename=$_POST["name"];
$ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
$size=$_FILES["file"]["size"];
$size=$size/1000000;
$size=round($size, 2);
$size.="MB";
$namewithext=$filename." (".$size.")".".".$ext;
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
    }
  else
    {
    if (file_exists("../../../moreinfo/files/videos/" . $_FILES["file"]["name"]))
      {
      echo "<script> alert('".$_FILES["file"]["name"] . " already exists. "."');</script>";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "../../../moreinfo/files/videos/" . $namewithext);
      echo "<script> alert('"."success"."');</script>";

      }
    }
}
  else
  {
  }
?>
<?php
foreach(glob('../../../moreinfo/files/videos/*.*') as $filename){
     $name = str_replace('../../../moreinfo/files/videos/', '', $filename);
     $ext = pathinfo($name, PATHINFO_EXTENSION);
     $notneeded=".".$ext;
     $name = str_replace($notneeded, '', $name);
     echo $name."</br>";
 }
 ?>
</body>
</html>

请注意,echo "<script> alert('"."success"."');</script>";永远不会被执行,因为没有时间执行。

谢谢!

更换

<form method="post" enctype="multipart/form-data">

带有

<form method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>">

如果这不是问题,那么尝试

echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; exit;

看看是否有错误。