Ho composto il codice Jsp-java, per l'Upload di file su server.
parte di codice contenuto nella pagina JSP
Specifiche contenuto nel file xml di strutscodice:<td> <html:form action="/upload" enctype="multipart/form-data"> <table align="center" border="2" style="border-collapse: collapse"> <tr> <td align="center">File</td> <td> <html:file property="myFile"/> </td> <td> <html:submit value="SALVA"/> </td> </tr> </table> </html:form> </td>
classe javacodice:<form-bean name="formUpload" type="it.progetto.form.FormUpload"/> ..... <action attribute="uploadForm" input="./upload.jsp" name="formUpload" path="/upload" scope="request" type="it.progetto.controllo.AzioneUpload"> <forward name="successo" path="/WEB-INF/protette/paginaInserimento.jsp" /> <forward name="errori" path="/errori.jsp" /> </action>
codice:package it.progetto.controllo; import it.progetto.form.*; import java.util.*; import javax.servlet.http.*; import org.apache.commons.logging.*; import org.apache.commons.*; import org.apache.struts.action.*; import org.apache.struts.upload.*; import org.apache.torque.Torque; import org.apache.torque.util.*; import javax.servlet.*; import java.io.*; import javax.servlet.*; public class AzioneUpload extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{ try { // istanziamo il nostro ActionForm FormUpload theForm = (FormUpload) form; // ricaviamo il testo inserito dall'utente String text = theForm.getText(); // ricaviamo l'immagine del file di cui si vuole fare l'upload FormFile file = theForm.getMyFile(); // ricaviamo il nome del file String fileName= file.getFileName(); // ricaviamo il MIME type del file String contentType = file.getContentType(); // ricaviamo le dimensioni del file (in Bytes) int sizeTemp = file.getFileSize(); String size = (sizeTemp + " Bytes"); // costruiamo una stringa che indicherà il percorso assoluto sul server nel quale // sarà salvato il file, ad // esempio C:\files\mioFile.txt String path = "C:\\files\\" + fileName; try { // ricaviamo i dati del file mediante un InputStream InputStream inStream = file.getInputStream(); FileOutputStream outStream = new FileOutputStream(path); // salviamo il file nel percorso specificato while (inStream.available()>0) { outStream.write(inStream.read()); } } catch (FileNotFoundException fnfe) { return null; } catch (IOException ioe) { return null; } // eliminiamo il file temporaneo che abbiamo creato file.destroy(); // mettiamo nella request i dati così da poterli ricavare dalla jsp request.setAttribute("text",text); request.setAttribute("path",path); request.setAttribute("contentType",contentType); request.setAttribute("size",size); // forwardiamo alla jsp mappata come "Success" nel file struts-config.xml return mapping.findForward("Success"); }catch(Exception e){ e.printStackTrace(); } return null; } }
e questo è l'errore che ritorna
codice:HTTP Status 500 - -------------------------------------------------------------------------------- type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException: Servlet execution threw an exception root cause java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileUploadException java.lang.Class.getDeclaredConstructors0(Native Method) java.lang.Class.privateGetDeclaredConstructors(Unknown Source) java.lang.Class.getConstructor0(Unknown Source) java.lang.Class.newInstance0(Unknown Source) java.lang.Class.newInstance(Unknown Source) org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:167) org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:142) org.apache.struts.util.RequestUtils.getMultipartHandler(RequestUtils.java:536) org.apache.struts.util.RequestUtils.populate(RequestUtils.java:394) org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:50) org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:60) org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs. -------------------------------------------------------------------------------- Apache Tomcat/6.0.10
Chi mi può aiutare, sono giorni che mi sbatto per creare la prte di codice che mi permetta di caricare file sul server, tecnologia Tomcat-struts-java....![]()

Rispondi quotando