Salve a tutti,
scusate la banalità della mia richiesta:
qualcuno sa come fare per uploadare un file dalla mia macchina al server Tomcat (nella root del progetto per esempio)attraverso un form html con il field di tipo file??
Grazie mille
Salve a tutti,
scusate la banalità della mia richiesta:
qualcuno sa come fare per uploadare un file dalla mia macchina al server Tomcat (nella root del progetto per esempio)attraverso un form html con il field di tipo file??
Grazie mille
Con una ricerca sul forum:
http://forum.html.it/forum/showthrea...readid=1344633
http://forum.html.it/forum/showthrea...readid=1307467
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Grazie per la tempestiva risposta...ho implementato ciò che è postato nel primo link ossia utilizzando la libreria oreilly servlet
però credo di dover utilizzare come parametro della form enctype="multipart/form-data"
il mio problema adesso è leggere tutti gli altri valori delle <input type="text"...
Sì, è un requisito necessario per il trasferimento dei file.Originariamente inviato da attila79
però credo di dover utilizzare come parametro della form enctype="multipart/form-data"
Semplicemente li recuperi dalla HttpServletRequest originale, esattamente come hai sempre fatto.il mio problema adesso è leggere tutti gli altri valori delle <input type="text"...
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Stranamente mi estituisce null nella servlet, ti posto il codice:
JSP
<form name="testUpload" action="testUpload" enctype="multipart/form-data" method="post">
<input type="text" id="textxls" name="textxls" />
<input type="file" name="filexls" />
<input type="submit" id="submit" name="submit" />
</form>
Porzione Servlet
MultipartRequest req = new MultipartRequest(request, getServletContext().getRealPath("/"), 5000000);
File f = req.getFile("filexls");
// Ci lavoro con questo file appena arrivato
out.println("Campo testo " + request.getParameter("textxls"));
nella pagina esce ---->>>>> Campo testo null
Sinceramente non ho mai provato a recuperarlo dopo aver costruito la MultipartRequest, quindi non so se ci possono essere problemi. Nello specifico, non so se il parsing effettuato dalla MultipartRequest vada a "rovinare" tutti gli altri parametri.
Prova, semplicemente, a farlo prima (sono certo del funzionamento di questo codice):
codice:// Prima recupero tutti i parametri dalla normale request String campoTesto = request.getParameter("textxls"); // Poi, creo la MultipartRequest MultipartRequest req = new MultipartRequest(request, getServletContext().getRealPath("/"), 5000000); File f = req.getFile("filexls"); // Ci lavoro con questo file appena arrivato out.println("Campo testo " + campoTesto);
PS: usa i tag CODE per il posting del codice (vedi regolamento interno)
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Sarà che mi sfugge qualcosa ma continua a dare null il recupero del valore del campo testo:
codice:try { String xx = request.getParameter("textxls"); // Creo una MultipartRequest che salverà il file nella root del progetto e che consentirà // una dimensione massima di 5000000 byte per la request (5 MB) out.println("Campo testo " + xx); MultipartRequest req = new MultipartRequest(request, getServletContext().getRealPath("/"), 5000000); File f = req.getFile("filexls"); // Ci lavoro con questo file appena arrivato out.println(" "); out.println("IL PATH DEL FILE CHE UPLOADATO " + f.getAbsolutePath()); } finally { out.close(); }
è normale che non riesci più a recuperare i dati dalla request perche vengono inviati in un altro formato, forse lele non ne è a conoscenza. Per recuperare i valori devi usare sempre l'oggetto MultipartRequest e fare una cosa del genere:
codice:MultipartParser mp = nMultipartRequest req = new MultipartRequest(request, getServletContext().getRealPath("/"), 5000000) Part part; while ((part = mp.readNextPart()) != null) { String name = part.getName(); // è un parametro if (part.isParam()) { ParamPart paramPart = (ParamPart) part; //recupero il valore String value = paramPart.getStringValue(); } //è un file else if (part.isFile()) { ecc...
Scusa Vindav non riesco ad interpretare bene il codice che hai postato, in particolare:
mi da l'errore del ; forse è un errore di copia e incolla.....codice:MultipartParser mp = MultipartRequest req = new MultipartRequest(request, getServletContext().getRealPath("/"), 5000000)
poi il nome del campo dal quale devo recuperare il valore dove lo devo mettere?
si scusami errore mio , rileggendo il mio post effettivamente non è che si capisce un gran che, ho fatto parecchio confusione. Il codice che ho postato fa utilizzo della libreria com.oreilly.servlet.multipart, codice che avevo scritto tempo fa ed ero convito che avessi utilizzato le classi standard. Dovresti trovare tutte la documentazione sul sito http://www.servlets.com, appena posso ti posto un esempio piu completo.