2

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

因此,您可以单击一个按钮并出现一个窗口(由 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>";永远不会被执行,因为没有时间。

谢谢!

4

1 回答 1

0

代替

<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;

看看有没有错误。

于 2013-02-23T04:32:12.353 回答