获取上传的文件PHP的XML内容

时间:2014-11-18 10:18:00

标签: php html xml html5

  1. 我想将XML文件上传到我的服务器。
    1. 删除/获取
    2. 的内容
    3. 打印出此结果。
  2. 步骤4:我想将XML文件的每一行写入我的数据库。

    这是我尝试喷射的方式。

    xml_import.php

    <?php
    
    if(isset($_POST["submit"])){
        echo "lets test";
        $uploaddir = 'C:\wamp\www\PLT';
        $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
    
        echo '<pre>';
        if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
            echo "Datei ist valide und wurde erfolgreich hochgeladen.\n";
        } else {
            echo "Möglicherweise eine Dateiupload-Attacke!\n";
        }
    
        echo 'Weitere Debugging Informationen:';
        print_r($_FILES);
        print "</pre>";
        $xml = simplexml_load_file($_FILES['userfile']['tmp_name']);
        print_r($xml);
    }
    ?>
    
    <form enctype="multipart/form-data" action="xml_import.php" method="POST">
    
        <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
    
        Diese Datei hochladen: <input name="userfile" type="file" />
        <input type="submit" name="submit" value="Send File" />
    </form>
    

    我不知道为什么,但这是我从PHP脚本回来的:

      

    Datei ist valide und wurde erfolgreich hochgeladen。 Weitere调试   信息:阵列(       [userfile] =&gt;排列           (               [name] =&gt; XML format.xml               [type] =&gt;文/ XML               [tmp_name] =&gt; C:\ WAMP \ tmp目录\ phpBE4B.tmp               [错误] =&gt; 0               [size] =&gt; 89835           )

         

         

    (!)警告:simplexml_load_file():I / O警告:加载失败   外部实体“file:/// C:/wamp/tmp/phpBE4B.tmp”in   第18行的C:\ wamp \ www \ PLT \ xml_import.php

    更新

    <xml>
    <competition Category="Senior" Country="DE" Description="Senior" Version="1.5"/>
    <row GName="Safksdlha" GlobalPos="0" Id="W004637" Name="MUNDKLY"/>
    <row GName="Laklödfa" GlobalPos="0" Id="W002054" Name="ASSHJKDNAITE"/>
    <row CompetitionStatus="AC" Date="20140904"  Time="12:59" Total="1343" ID="W004637"/>
    </xml>
    

    我需要从中获取所有GName和Name吗?有人可以向我显示吗?

1 个答案:

答案 0 :(得分:0)

从以下位置更改PHP代码:

<?php

if(isset($_POST["submit"])){
    echo "lets test";
    $uploaddir = 'C:\wamp\www\PLT';
    $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

    echo '<pre>';
    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
        echo "Datei ist valide und wurde erfolgreich hochgeladen.\n";
    } else {
        echo "Möglicherweise eine Dateiupload-Attacke!\n";
    }

    echo 'Weitere Debugging Informationen:';
    print_r($_FILES);
    print "</pre>";
    $xml = simplexml_load_file($_FILES['userfile']['tmp_name']);
    print_r($xml);
}
?>

对此:

<?php

if(isset($_POST["submit"])){
    echo "lets test";
    $uploaddir = 'C:\wamp\www\PLT';
    $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

    echo '<pre>';
    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
        echo "Datei ist valide und wurde erfolgreich hochgeladen.\n";

        echo 'Weitere Debugging Informationen:';
        print_r($_FILES);
        print "</pre>";
        $xml = simplexml_load_file($uploadfile);
        print_r($xml);          

    } else {
        echo "Möglicherweise eine Dateiupload-Attacke!\n";
    }


}
?>