| 

.NET C# Java Javascript Exception

XML File Upload und direkt verarbeiten ohne zu speichern

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


XML File Upload und direkt verarbeiten ohne zu speichern

graily - 15.02.2010 15:16
Ich versuche ein XML File via File Upload auf den Web Server zu speichern:

Language: Groovy
<%@ page contentType="text/html;charset=UTF-8" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>File Transfer</title> </head> <body> <h1>File Upload</h1> <!-- controller="fileUpload" --> <g:form method="post" action="save" enctype="multipart/form-data"> <input type="file" name="fileName"/> <input type="submit"/> </g:form> </body> </html>

Das File mittels dem Controller auszulesen und direkt mit dem XML Parser zu verarbeiten:

Language: Groovy
class FileUploadController &#123; &nbsp; def index = &#123; redirect&#40;action:'upload.gsp'&#41; &#125; &nbsp; def save = &#123; def file = request.getFile&#40;'fileName'&#41; if &#40;!file.empty&#41; &#123; def parser = new XmlParser&#40;&#41; def elements = parser.parse&#40;file.toString&#40;&#41;&#41; def stat = new Statistik&#40;&#41; stat.execute&#40;elements&#41;; redirect&#40;action:'view.gsp'&#41; &#125; else &#123; flash.message = 'file cannot be empty' redirect&#40;action:'upload.gsp'&#41; &#125; &#125; &#125;

Das Ausführen des parser.parse(file.toString()) schmeisst eine FileNotFound Exception.
Error 500: Executing action [save] of controller [FileUploadController] caused exception: java.io.FileNotFoundException:

Ohne Parser kann ich aber das File auslesen, wieso schmeisst der parser diese Exception?

gruss graily


Re: XML File Upload und direkt verarbeiten ohne zu speichern

vawalda - 15.02.2010 15:41
Servus graily,
wenn du den im File enthaltenen Text parsen willst dann geht das mit
new XmlParser().parseText(String text)
So wie du es versuchst wird der String als URI verwendet.

Das hier sollte auch gehen
new XmlParser().parse(file.getInputStream())
(hab ich aber nicht getestet)

Gruß Michl


Re: XML File Upload und direkt verarbeiten ohne zu speichern

graily - 22.02.2010 15:36
graily schrieb:
-------------------------------------------------------
> vawalda schrieb:
> --------------------------------------------------
> -----
> > Servus graily,
> > wenn du den im File enthaltenen Text parsen
> willst
> > dann geht das mit
> >
> > new XmlParser().parseText(String text)
> >
> > So wie du es versuchst wird der String als URI
> > verwendet.
> >
> > Das hier sollte auch gehen
> >
> > new XmlParser().parse(file.getInputStream())
> >
> > (hab ich aber nicht getestet)
> >
> > Gruß Michl
>
> Ich kann so das file parsen und als Node einer
> Klasse übergeben,
>
>
> def parser = new XmlParser()
> Node elements =
> parser.parse(file.getInputStream())
>
>
>
>
> def execute(Node elements) {
>
> elements.trk.trkseg.trkpt.each { trkpt ->
>
> lat2 = trkpt.'@lat'
> long2 = trkpt.'@lon'
> }
> }
>
>
> Die Elements werden aber nicht richtig ausgelesen,
> er iteriert nur einmal und liefert alle trpt XML
> Werte auf einmal zurück (in einem String).
> Wenn ich eine Testklasse mache und das Ganze aus
> dem Filesystem lese funktioniert es.
>
> gruss graily

wie es scheint ist das herauf geladene XML File kein XML File mehr, er parst es aber füllt alles in einen Node ab.
Wie kann man den Parser "zwingen" das XML File richtig zu intepretieren.
Der Code läuft als als Standalone Applikation die das File normal über das File System geöffnet wird:

Language: Groovy
def parser = new XmlParser&#40;&#41; Node elements = parser.parse&#40;new File&#40;'./doc/test.xml'&#41;&#41;

gruss graily


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "XML File Upload und direkt verarbeiten ohne zu speichern" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.