Читать полученных XML ajax - PHP


В php с помощью команды var_dump($_FILES ['filexml']); я получаю следующие значения ajax

array(5) {
  ["name"]=>
  string(56) "nomeficticio.xml"
  ["type"]=>
  string(8) "text/xml"
  ["tmp_name"]=>
  string(14) "/tmp/phpoqnomeficticio"
  ["error"]=>
  int(0)
  ["size"]=>
  int(16536)
}

с Помощью этих данных, как я могу прочитать этот XML-файл? PHP я даже пытался использовать команду simplexml_load_file($_FILES['filexml']);, но он дал следующее сообщение об ошибке:

Simplexml_load_file() expects parameter 1 to be a valid path, array given

Author: Silvio Andorinha, 2015-09-10

2 answers

Массив уже говорит, где находится файл. Просто его открыть:

simplexml_load_file($_FILES['filexml']['tmp_name']);

Однако, не рекомендуется обрабатывать файл в временный каталог, так как сам может очистить этот каталог, время от времени. Предпочитаю, чтобы переместить его до этого -

$basename = basename($_FILES['filexml']['tmp_name']);
move_uploaded_file($_FILES['filexml']['tmp_name'], __DIR__ . $basename);
simplexml_load_file( __DIR__ . $basename);
 3
Author: Rodrigo Rigotti, 2015-09-10 13:26:05

Вам нужно только использовать 'tmp_name' вместо 'name'. Пример:

<?php
if(isset($_FILES['input_file'])){
    $xml = simplexml_load_file($_FILES['input_file']["tmp_name"]);
    echo '<pre>';
    var_dump($xml);
    echo '</pre>';
}
?>
<form class="frm" method="post" enctype="multipart/form-data" novalidate="novalidate">
    <input type="file" name="input_file"/>
    <input type="submit" value="Enviar"/>
</form>

Я Надеюсь, что помог!

Если сработает, я был бы рад, если дадите мне upvote и выбор мой ответ.

 3
Author: Allan Andrade, 2015-09-10 13:23:28