PDA

View Full Version : [JAVA] Problema Servlet Upload File


Dix 3
11-06-2008, 12:52
Ho un problema.. Devo fare un upload file su tomcat 5.5.17 . Ho visto la libreria org.apache.commons.fileupload 1.21

Il codice è questo

System.out.println("Prova2 con commons "+request.toString());

System.out.println("Create a factory for disk-based file items");
FileItemFactory factory = new DiskFileItemFactory();

System.out.println("Create a new file upload handler");
ServletFileUpload upload = new ServletFileUpload(factory);

System.out.println("Parse the request");
List items = upload.parseRequest(request);

//*********************** PROBLEMA *****************
System.out.println("Item trovati = " + items.size());

Iterator itr = items.iterator();
// Ora controlliamo tutti gli item presenti
// salvando tutti i file che sono stati inviati
while (itr.hasNext()) {
FileItem item = (FileItem) itr.next();
if (!item.isFormField()) {
String Dir = realPath + "img/lav_" + numLavoro + "/";
// Creo la directory
util.Util.creaDir(Dir);
File fullFile = new File(item.getName());
File savedFile = new File(Dir, fullFile.getName());
if (!savedFile.exists()) {
item.write(savedFile);
Image img = new Image();
// setto il num di lavoro
img.setLavoro(numLavoro);
// setto il DB
img.setURL("img/lav_" + numLavoro + "/" + fullFile.getName());
img.ScriviDatiSuDB();
} else {
return -1;
}
}
}

return numLavoro;


Il problema è che si ferma prorpio l'esecuzione al momento di:
List items = upload.parseRequest(request);
non da errori, si blocca soltanto.. Non va più avanti..

AIUTO :mad: :mad: :mad: :cry:

Dix 3
11-06-2008, 19:53
up :cry:

Dix 3
12-06-2008, 19:07
non ci credo che nessuno non abbia mai fatto u upload di un file in java..

:cry:
:cry:
:cry:

Dix 3
12-06-2008, 20:19
ho cambiato metodo ma il risultato cambia di poco
cioè adesso riscontro un errore.


file addFile.java
..
..

103: java.io.PrintStream Output = new java.io.PrintStream(fileOut);
104:
105:// metodo che mi serve dato che i dati presi sono byte di immagini
106:Output.write(data);
..
..
..


GUI.addFile.processRequest(addFile.java:106)
GUI.addFile.doPost(addFile.java:163)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Thread.java:619)

se uso per esempio:

Output.print("Sringa qualsiasi");

va tutto bene come inserimento di file ma ovviamente il file risulta un file di testo.
:muro: :muro: :muro: :muro: :muro:

VI PREGO!!!!!!!!! AIUTATEMI...

Dix 3
13-06-2008, 14:24
:muro:

shimo-ne
13-06-2008, 16:15
Ma come fai l'upload del file?? con un form?

Dix 3
16-06-2008, 09:54
Ma come fai l'upload del file?? con un form?

certo..
poi in action lancio la servlet..
Adesso il problema più grosso e che se lancio

java.io.PrintStream Output = new java.io.PrintStream(fileOut);
non va

se lancio
Output.print("Sringa qualsiasi");

funziona tutto.. ovviamente il file risulta di testo..
:muro: :muro: :muro: :muro: