Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako da prebacim XML fajl sa klijenta na server

[es] :: Java :: Kako da prebacim XML fajl sa klijenta na server

[ Pregleda: 3006 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

solic
Novi Sad

Član broj: 43350
Poruke: 11
*.adsl.beotel.net.



Profil

icon Kako da prebacim XML fajl sa klijenta na server06.04.2008. u 21:37 - pre 162 meseci
U pitanju je web aplikacija. Potrebno je da se izvrsi upload XML fajla sa klijenta na server i da se pri tom taj xml fajl smesti u bazu.
Citanje iz xml fajla i smestanje podataka u bazu sam nekako reshio , ali mi je problem kako da prebacim xml fajl na server da bi ga mogao ucitati.
Ideja je da na jednoj JSP stranici imam button koji , kada se klikne, otvara okvir za dijalog da se izabere xml fajl i da se onda izvrsi prebacivanje
fajla na server a zatim i njegovo smestanje u bazu.

Da li neko ima ideju kako to da se uradi?
 
Odgovor na temu

milan.dinic
Milan Dinic
Novi Sad

Član broj: 157176
Poruke: 85
*.execom.co.yu.

Sajt: milandinic.blogspot.com


Profil

icon Re: Kako da prebacim XML fajl sa klijenta na server07.04.2008. u 08:24 - pre 162 meseci
ovo zvuci kao zadatak iz elektronskog poslovanja...

mozes koristiti biblioteku commons-fileupload, a posto je text(xml) u pitanju, mozes dodati ove linije koda u servlet:


BufferedReader fileReader=null;
StringBuffer stringBuffer=new StringBuffer();
String stringLine=null;
fileReader=request.getReader();

while ((stringLine=fileReader.readLine())!=null){
stringBuffer.append("\n");
stringBuffer.append(stringLine);
}

i xml ce biti u stringBuffer-u :)

na JSP-u, je bitno da za formu koju submit-ujes postavis tag enctype="multipart/form-data"
 
Odgovor na temu

solic
Novi Sad

Član broj: 43350
Poruke: 11
*.rzzo.sr.gov.yu.



Profil

icon Re: Kako da prebacim XML fajl sa klijenta na server07.04.2008. u 12:18 - pre 162 meseci
Hvala na odgovoru ali i dalje mi to ne reshava problem.

Za parsiranje XML dokumenta koristim SAX parser , zato sto su xml fajlovi dosta veliki (nekoliko MB do 10 i vise MB).

Evo primera koda:

SAXParserFactory radionica = SAXParserFactory.newInstance();
SAXParser saxRasclanjivac = radionica.newSAXParser();

DefaultHandler obradjivac = new DefaultHandler(){

... ovde ide implementacija metoda ....

}

saxRasclanjivac.parse(fileReader, obradjivac);

prvi argument metoda parse je ili File ili inputStream.

Kada uzmem:

ServletInputStream fileReader = request.getInputStream() i kada ga prosledim kao prvi argument - javlja

gresku da je : org.xml.sax.SAXParseException: Premature end of file.

Kada uzmem sa servera : File f = new File("nekiFajl.xml") i prosledim ga kao


saxRasclanjivac.parse(fileReader, obradjivac); sve radi Ok.

Kako to da reshim?
 
Odgovor na temu

milan.dinic
Milan Dinic
Novi Sad

Član broj: 157176
Poruke: 85
*.execom.co.yu.

Sajt: milandinic.blogspot.com


Profil

icon Re: Kako da prebacim XML fajl sa klijenta na server07.04.2008. u 13:01 - pre 162 meseci
kada dobijes xml kao string na serveru, snimi ga u fajl, i nakon toga mozes da koristis koji god hoces parser.

a napomenuo sam da postoji biblioteka commons-fileupload kojom ces dobiti File instancu za svaki upload-ovan file. nesto vise o njoj mozes naci na http://commons.apache.org/fileupload/
 
Odgovor na temu

solic
Novi Sad

Član broj: 43350
Poruke: 11
*.adsl.beotel.net.



Profil

icon Re: Kako da prebacim XML fajl sa klijenta na server07.04.2008. u 16:30 - pre 162 meseci
Hvala ti jos jednom.

Sada cu probati pomocu fileuplod-a
 
Odgovor na temu

solic
Novi Sad

Član broj: 43350
Poruke: 11
*.adsl.beotel.net.



Profil

icon Re: Kako da prebacim XML fajl sa klijenta na server07.04.2008. u 20:33 - pre 162 meseci
Reshio sam pomocu biblioteke common-fileupload.

Evo koda ako nekom zatreba:

// Create a factory for disk-based file items
FileItemFactory factory = new DiskFileItemFactory();

// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);

File uploadedFile = new File("NekaPutanjaSaImenomFajla.xml"); //putanja na serveru

try{
// Parse the request
List items = upload.parseRequest(request); /* FileItem */

// Process the uploaded items
Iterator iter = items.iterator();

while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
item.write(uploadedFile);
break; //ovde mora break zato sto je uzimao jos neke parametre
}
}catch(Exception ioe){
System.out.println("Greska kod prenosa fajla na server!");
}

nakon ovoga dobijam fajl na serveru a to je uploadedFile , koji se dalje moze procesirati.

Hvala Milane jos jednom :)
 
Odgovor na temu

[es] :: Java :: Kako da prebacim XML fajl sa klijenta na server

[ Pregleda: 3006 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.