Salve, devo sviluppare un applicazione web tramite jsp e tomcat che permetta l'upload di file sul server. Potete darmi qualke indicazione utile per aiutarmi a creare codice per l'upload? grazie mille! ciaoo
Salve, devo sviluppare un applicazione web tramite jsp e tomcat che permetta l'upload di file sul server. Potete darmi qualke indicazione utile per aiutarmi a creare codice per l'upload? grazie mille! ciaoo
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
Ciao anch'io ho il tuo stesso problema e vorrei maggiori chiarimenti se sei riuscito a risolvere il problema...
ho provato ad andare sul link che avete segnalato ma mi dà errore.
Questo è il codice che sto usando:
<%@page contentType="text/html" language="java" import="java.io.*, org.apache.commons.fileupload.*, org.apache.commons.fileupload.servlet.*, org.apache.commons.fileupload.util.*" %>
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<FORM ENCTYPE='multipart/form-data' method='POST' action='http://localhost/upload.jsp'>
<INPUT TYPE='file' NAME='fileUp'>
<INPUT TYPE='submit' VALUE='Upload File'>
</FORM>
<%
// controlliamo se la request che è stata
// effettuata contiene o meno un file
boolean isMultipart = FileUpload.isMultipartContent(request);
if (isMultipart) {
DiskFileUpload upload = new DiskFileUpload();
List items = upload.parseRequest(request);
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()) {
File fullFile = new File(item.getName());
File savedFile = new File(getServletContext().getRealPath("/"),
fullFile.getName());
item.write(savedFile);
}
}
%>
</body>
</html>
Questo è l'errore:
Compiling 1 source file to /home/vivadaniele85/Progetti java/prove_generiche/build/generated/classes
/home/vivadaniele85/Progetti java/prove_generiche/build/generated/src/org/apache/jsp/upload_jsp.java:74: cannot find symbol
symbol : class List
location: class org.apache.jsp.upload_jsp
List items = upload.parseRequest(request);
^
/home/vivadaniele85/Progetti java/prove_generiche/build/generated/src/org/apache/jsp/upload_jsp.java:75: cannot find symbol
symbol : class Iterator
location: class org.apache.jsp.upload_jsp
Iterator itr = items.iterator();
^
Note: /home/vivadaniele85/Progetti java/prove_generiche/build/generated/src/org/apache/jsp/upload_jsp.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
2 errors
/home/vivadaniele85/Progetti java/prove_generiche/nbproject/build-impl.xml:364: The following error occurred while executing this line:
/home/vivadaniele85/Progetti java/prove_generiche/nbproject/build-impl.xml:149: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 14 seconds)
In pratica non mi compila la pagina.
Sapete aiutarmi?
Il problema che segnali è dovuto al fatto che manca un package (che fa sempre parte del org.apache.commons) che nella guida non ti indicano: se guardi il log di tomcat ti dovrebbe venir segnalata la mancanza di org.apache.commons.io
http://jakarta.apache.org/commons/
Qui hai tutto quello che è finito dentro commons: per fare l'upload ti basta aggiungere IO al già scaricato FileUpload.
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
Salve,
ho seguito i vari passi ma ugulamente mi dà errore:
-ho scaricato il package commons-io-1.3.2 dal sito di jakarta (dove contiene i file .jar).
-Ho importato nel mio progetto, con neatbeans, i file.jar nella cartella "Libraries"
Però ugualmente mi dice che non riesce atrovare il package org.apache.commons.io:
gli errori che mi dà sono:
....\index_jsp.java:74: cannot find symbol
symbol : class List
location: class org.apache.jsp.index_jsp
List items = upload.parseRequest(request);
Qualcuno mi può dare una mano???
vi ringrazio
includi (o specifica) il package: java.util.* (o solo java.util.List)
Ivan Venuti
Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !
ti ringrazio
però continua darmi il seguente errore:
import org.apache.commons.io;
come devo fare?
import org.apache.commons.io.*;
Ivan Venuti
Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !
Ti posto le mie due pagine di test in NetBeans
form.jsp
postform.jspcodice:<%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%-- The taglib directive below imports the JSTL library. If you uncomment it, you must also add the JSTL library to the project. The Add Library... action on Libraries node in Projects view can be used to add the JSTL 1.1 library. --%> <%-- <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> --%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <% String[] address = {"andrea79@html.it","pippo@pappo.it","topolino@minnie.com","beato@lui.com"}; %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Form Demo</title> </head> <body> <h1>Form Demo</h1> <form name="myform" action="postform.jsp" method="post" enctype="multipart/form-data"> <% for (int i = 0; i < address.length; i++) {%> <input type="checkbox" name="address[]" value="<% out.println(address[i]); %>" /><% out.println(address[i]); %> <% } %> <input type="file" name="uploadfile" /> <input type="submit" value=" INVIA " /> </form> </body> </html>
Ho solo messo un po' mano al codice per verificare chi è davvero un input="file" e trattarlo come tale e stampare tutti gli altri campi. Scusa commenti inutili, ma non lavoro molto in JSP ed uso sempre le stesse due o tre pagine per fare i miei test (dovrei fare un po' di pulizia, lo socodice:<%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%@page import="java.io.*,java.util.*,org.apache.commons.fileupload.*,org.apache.commons.io.output.*" %> <%-- The taglib directive below imports the JSTL library. If you uncomment it, you must also add the JSTL library to the project. The Add Library... action on Libraries node in Projects view can be used to add the JSTL 1.1 library. --%> <%-- <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> --%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Post Form Destination</title> </head> <body> <h1>Retrieving Post Data</h1> <% boolean isMultipart = FileUpload.isMultipartContent(request); if (isMultipart) { DiskFileUpload upload = new DiskFileUpload(); List items = upload.parseRequest(request); Iterator itr = items.iterator(); // Ora controlliamo tutti gli item presenti // salvando tutti i file che sono stati inviati while(itr.hasNext()) { Object obj = itr.next(); try { FileItem item = (FileItem) obj; if(!item.isFormField()) { File fullFile = new File(item.getName()); File savedFile = new File(getServletContext().getRealPath("/"), fullFile.getName()); item.write(savedFile); } else { out.println("Campo form con nome:" + item.getFieldName()+" e valore: "+item.getString()+" "); } } catch (Exception e) { } } } %> Altra prova </body> </html>)
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
l'ho fatto già.....ma mi dice che non esiste!!!!!!
Non sò se è un problema di versione o che ho sbagliato qualcosa nell'importare il package.
mi potete indicare passo passo come devo fare?
vi ringrazio