2012-03-23 64 views
0

我試圖讓下面的代碼工作:使用simplexml_load_file不加載文件

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

呼應的「這裏」,但它不會加載該文件。

任何想法?


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

什麼是您打開的文件?它只是明文嗎?或者你是否正在嘗試打開某人正在使用文件上傳字段的文件?爲您的輸入法顯示一些HTML。 – nickw444 2012-03-23 10:26:53

+0

這不是一個正確的方法來知道xml文件是否加載 – Hkachhia 2012-03-23 10:27:28

+0

所以你有一個來自'die' func的「錯誤」消息? – deadrunk 2012-03-23 10:30:40

回答

0

使用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>'; 
} 
+0

乾杯夥計,不確定這是什麼意思,但不知道如何解決它在文檔結尾的額外內容(1332497587Fixture1.xml:3) – BluffTrout 2012-03-23 10:57:09

+0

我現在會發布我的xml文件 – BluffTrout 2012-03-23 11:04:53

+0

我想我已經工作了出來,在那裏不能擁有標題?或者有沒有辦法解決這個問題? – BluffTrout 2012-03-23 11:10:00