Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    33

    JSP: Upload file sul server tomcat

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    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?

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    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"

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    57
    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

  6. #6
    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 !

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    57
    ti ringrazio
    però continua darmi il seguente errore:

    import org.apache.commons.io;

    come devo fare?

  8. #8
    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 !

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ti posto le mie due pagine di test in NetBeans

    form.jsp
    codice:
    <%@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>
    postform.jsp
    codice:
    <%@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>
    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 so )
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    57
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.