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?
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!
> 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.
#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:
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 :)
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!