simplexml_load_file没有加载文件

I am trying to get the following code to work:

if (isset($_POST['file'])){
    if(file_exists($_POST['file'])){
        echo "here";
        $fixture = simplexml_load_file($_POST['file']) or die ('error');
    }
}

It echoes the 'here' but it does not load the file.

Any ideas?


<HTML>
<HEAD>
<TITLE>File Upload</TITLE>
</HEAD>
<BODY>
<?php
if ((($_FILES["file"]["type"] == "text/xml"))
&& ($_FILES["file"]["size"] < 20000))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

    if (file_exists(time() . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      time() . $_FILES["file"]["name"]);
      echo "Stored in: " . time() . $_FILES["file"]["name"];
      echo "<form action='league.php' method='post'>";
      echo "<input type='hidden' value='" . time() . 
                    $_FILES["file"]["name"] . "' name='file'>";
      echo "<input type='submit' /></form>";
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>
</BODY>
</HTML>

The file being uploaded is an XML file and the filename is posted as a hidden variable to the previous code.


<?xml version="1.0"?>
<title>Results</title>
<results>
    <result>
        <hometeam>
            <name>Team A</name>
            <score>6</score>
        </hometeam>
        <awayteam>
            <name>Team B</name>
            <score>0</score>
        </awayteam>
    </result>
</results>

Use libxml_get_errors() to get your detailed errors, or else we just can guess what's going on.

<?php
// somewhere at the top
libxml_use_internal_errors(true);

// ....
foreach(libxml_get_errors() as $error) {
  echo $error->message , '(',  $error->file , ':' ,  $error->line , ')<br>';
}