simplexml_load_file未加载文件


simplexml_load_file not loading file

我正在尝试让以下代码工作:

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

它会回显"here",但不会加载文件。

有什么想法吗?


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

上传的文件是一个XML文件,文件名作为隐藏变量发布到以前的代码中。


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

使用libxml_get_errors()来获取详细的错误,否则我们只能猜测发生了什么。

<?php
// somewhere at the top
libxml_use_internal_errors(true);
// ....
foreach(libxml_get_errors() as $error) {
  echo $error->message , '(',  $error->file , ':' ,  $error->line , ')<br>';
}