2014-10-06 4 views
-2

Как я могу прочитать содержимое XML-файла из HTML-формы с помощью PHP без загрузки файла? Это моя форма:PHP Чтение файла из входного файла HTML

<form action="readxml.php" method="post" enctype="multipart/form-data"> 
    <label for="file">Filename:</label> 
    <input type="file" name="file" id="file"><br> 
    <input type="submit" name="submit" value="Submit"> 
</form> 

Я хочу, чтобы обрабатывать XML, что пользователь выбирает с помощью SimpleXML для сохранения значения в базе данных, таким образом, мне не нужно на самом деле загрузить файл.

Спасибо!

+1

Что вы подразумеваете под "без загрузки файла"? вы имеете в виду, что просто хотите передать xml в виде строки и проанализировать ее (чтобы получить значения)? –

+1

Чтобы разобрать его на сервере, вы должны * загрузить его! Это не имеет никакого смысла. –

+0

Поскольку php запускается на сервере, файл должен быть сначала загружен. – Cyclonecode

ответ

0

Вы не можете. Я думаю, что это не выполнимо даже на стороне клиента, анализируя файл с помощью javascript. Но я могу ошибаться. Вы можете загрузить его на сервер, сохранить его во временную папку, а затем удалить.

+0

Можете ли вы рассказать мне, как это сделать? –

+0

Ссылки добавлены в мой ответ. –

3

Вы не можете сделать это с PHP без файла, фактически находящегося на сервере. Вы должны загрузить файл или вы можете обработать его на стороне клиента без загрузки одним из следующих способов:

  • Использование HTML5 FileReader API, работает только на Chrome, FF и IE 10+
  • Использование ActiveX для обрабатывать файл на стороне клиента, не будет работать, кроме IE.
  • Используйте SilverLight для обработки файла на стороне клиента.
  • User ActionScript для обработки файла на стороне клиента.

Однако я рекомендую загрузить файл во временное местоположение и обработать его, а затем удалить. Это проще и будет работать везде, как на сервере.

Это как загрузить файл: PHP File Upload

Это, как удалить файл: PHP unlink() Function

Это как читать файл: PHP File Open/Read/Close

+0

Я полностью согласен с частью «однако» ... –

+0

Я понимаю. Можете ли вы дать мне несколько советов о том, как загрузить файл, прочитать его и удалить? –

+0

Ссылки добавлены в мой ответ для загрузки, чтения и удаления. –

-1

это в моем html/php file ... Я просто настроил его на себя, потому что это было легко для меня.

<?php 

if (isset($_FILES['file'])) { 
    $file = $_FILES['file']['tmp_name']; 

    $catalog = simplexml_load_file($file); 

    echo '<table style="border-spacing: 10px;">'; 
    echo '<tr><th>Title</th><th>Author</th></tr>'; 

    foreach ($catalog->book as $b) { 
     echo '<tr><td>'.$b->title.'</td><td>'.$b->author.'</td></tr>'; 
    } 
    echo '</table>'; 
} 
else { 
?> 
<!-- change the filename below --> 
<form action="filename.html" method="post" enctype="multipart/form-data"> 
    <label for="file">Filename:</label> 
    <input type="file" name="file" id="file"><br> 
    <input type="submit" name="submit" value="Submit"> 
</form> 
<?php } ?> 

и вот XML, который я использовал в файл для загрузки с формой ...

<?xml version="1.0"?> 
<catalog> 
    <book id="bk101"> 
     <author>Gambardella, Matthew</author> 
     <title>XML Developer's Guide</title> 
     <genre>Computer</genre> 
     <price>44.95</price> 
     <publish_date>2000-10-01</publish_date> 
     <description>An in-depth look at creating applications 
     with XML.</description> 
    </book> 
    <book id="bk102"> 
     <author>Ralls, Kim</author> 
     <title>Midnight Rain</title> 
     <genre>Fantasy</genre> 
     <price>5.95</price> 
     <publish_date>2000-12-16</publish_date> 
     <description>A former architect battles corporate zombies, 
     an evil sorceress, and her own childhood to become queen 
     of the world.</description> 
    </book> 
    <book id="bk103"> 
     <author>Corets, Eva</author> 
     <title>Maeve Ascendant</title> 
     <genre>Fantasy</genre> 
     <price>5.95</price> 
     <publish_date>2000-11-17</publish_date> 
     <description>After the collapse of a nanotechnology 
     society in England, the young survivors lay the 
     foundation for a new society.</description> 
    </book> 
</catalog> 

это либо просто отображает форму загрузки или таблица книг

Title      Author 
XML Developer's Guide  Gambardella, Matthew 
Midnight Rain    Ralls, Kim 
Maeve Ascendant   Corets, Eva 

также ... как указано ниже по ссылке ... если вы не перемещаете или не переименовываете временный файл, он будет удален, когда скрипт php завершится. php:: how long to tmp files stay?

Смежные вопросы