Kezdőoldal » Számítástechnika » Programozás » Hogyan tudok Java Servlettel...

Sogor kérdése:

Hogyan tudok Java Servlettel file-t feltölteni a serverre úgy, hogy annak a tartalmát feltöltés után el tudjam tárolni egy stringben?

Figyelt kérdés

index.html-ben készítettem egy formot, ami elküldi a filet, viszont a Binfa.java-ban nem tudok létrehozni egy File változót, hogy utána getline()-al kinyerjem a stringet.


Próbáltam rengeteg fórumon utána járni a dolognak, de semelyik sem működött, és azt sem értem, hogy miért kell

getServletContext().getRealPath(""));

Azért nem értem, mert a feltöltött filenak az elérési utvonalát ki tudom irattatni, ergó megkapja a servlet a feltöltött fileomat, viszont ha új file-t hozok létre az ajánlott getServletContext().getRealPath(""));-el azt írja ki, hogy nincs ilyen file!



2016. szept. 16. 14:00
 1/3 anonim ***** válasza:

> nem tudok létrehozni egy File változót, hogy utána getline()-al kinyerjem a stringet.


Miért, mi a gond a változó létrehozásával?


getline() pedig nincs Java-ban.


> ha új file-t hozok létre az ajánlott getServletContext().getRealPath(""));-el azt írja ki, hogy nincs ilyen file!


Hogyan hozol létre fájlt? Remélem, azt tudod, hogy az alábbi kód nem hoz létre fájlt:

new File("fájlnév");


Egyébként ki tudod olvasni InputStreamből a feltöltött fájl adatát? Mert ha az megvan, akkor csak ki kell írnod egy OutputStreamWriter-rel fizikai fájlba.

2016. szept. 16. 15:23
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

#1 vagyok


Hülye vagyok, nem is kell fájlba írni, hiszen neked String-be kell. Eképpen az InputStream-ből olvasott adatokat (nyilván darabonként olvasol) konkatenálod egy String-be és kész.


A zöld pipával jutalmazott válaszban ott egy példa az InputStream elérésére:

[link]

2016. szept. 16. 15:30
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:

Köszönöm a válaszod, jó irányba terelte a figyelmemet, és most már sikerült megoldani a gondot:


Part filePart = request.getPart("myfile");

BufferedReader buffr = new BufferedReader(new InputStreamReader(filePart.getInputStream()));

String bb = buffr.readLine();

PrintWriter out = response.getWriter();

out.println(bb);


Bár még mindig nem jöttem rá, hogy inputstreamreader-ből miért nem tudom közvetlenül readLine()-al kinyerni a stringet, miért kell még BufferedReader is, azon kívül hogy megegye az idegrendszeremet, de a Buffreaderben ott van a csodálatos readLine(), amire annyira vágytam!

Elmondani nem tudom milyen boldoggá tettél kollega, végre működik a progim, és ezért nagyon jók az esélyeim, hogy sikerülni fog a védésem! És nem csúszok évet :)

2016. szept. 17. 13:06

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!