Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [jsp] upload di immagini

    Salve a tutti...allora io devo fare l'upload di una immagine, ho scaricato i jar di apache commons li ho sistemati dentro l'apposita cartella di tomcat ma mi lancia la seguente eccezione:
    codice:
    javax.servlet.ServletException:org/apache/commons/io/output/DeferredFileOutputStream
    qui di seguito vi posto il codice della jsp dove dovrei fare l'upload:

    codice:
    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("../Images/"),fullFile.getName());
    			item.write(savedFile);
    		} 
    	}
    }
    Potreste aiutarmi?

  2. #2
    Ragazzi ho risolto....i moderatori possono chiudere la discussione

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315

    Moderazione

    Potresti anche postare la tua soluzione che, magari, potrebbe essere utile a qualcun altro.


    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

  4. #4
    E' del codice che ho trovato in un forum inglese...posso postarlo?

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315

    Moderazione

    Certamente.


    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

  6. #6
    ok allora ecco qui :
    questa è la pagina in cui si sceglie l'immagine:
    codice:
    <body>
       <form name="uploadForm" action="upload.jsp" enctype="multipart/form-data" method="post">
          <input type="file" name="file">
          <input name='Upload' Value='Upload' onClick="document.uploadForm.submit()" type="button">
       </form>
    </body>
    e questa è la jsp "upload.jsp" (e un pò lunghina)
    codice:
    <%
     
        response.setContentType("text/html");
        response.setHeader("Cache-control","no-cache");
     
     	out.println("request "+request.getParameter("file")+"
    ");
     
        String err = "";
     
        String lastFileName = "";
     
        String contentType = request.getContentType();
        String boundary = "";
        final int BOUNDARY_WORD_SIZE = "boundary=".length();
        if(contentType == null || !contentType.startsWith("multipart/form-data")) {
          err = "Ilegal ENCTYPE : must be multipart/form-data\n";
          err += "ENCTYPE set = " + contentType;
        }else{
          boundary = contentType.substring(contentType.indexOf("boundary=") + BOUNDARY_WORD_SIZE);
          boundary = "--" + boundary;
          try {
            javax.servlet.ServletInputStream sis = request.getInputStream();
    		
            byte[] b = new byte[1024];
            int x=0;
            int state=0;
            String name=null,fileName=null,contentType2=null;
            java.io.FileOutputStream buffer = null;
            while((x=sis.readLine(b,0,1024))>-1) {
              String s = new String(b,0,x);
              if(s.startsWith(boundary)) {
                state = 0;
                //out.println("name="+name+"
    ");
                //out.println(fileName+"
    ");
     
                name = null;
                contentType2 = null;
                fileName = null;
     
     
              }else if(s.startsWith("Content-Disposition") && state==0) {
                state = 1;
                if(s.indexOf("filename=") == -1)
                  name = s.substring(s.indexOf("name=") + "name=".length(),s.length()-2);
                else {
                  name = s.substring(s.indexOf("name=") + "name=".length(),s.lastIndexOf(";"));
                  fileName = s.substring(s.indexOf("filename=") + "filename=".length(),s.length()-2);
                  if(fileName.equals("\"\"")) {
                    fileName = null;
                  }else {
                    String userAgent = request.getHeader("User-Agent");
                    String userSeparator="/";  // default
                    if (userAgent.indexOf("Windows")!=-1)
                      userSeparator="\\";
                    if (userAgent.indexOf("Linux")!=-1)
                      userSeparator="/";
                    fileName = fileName.substring(fileName.lastIndexOf(userSeparator)+1,fileName.length()-1);
                    if(fileName.startsWith( "\""))
                      fileName = fileName.substring( 1);
                  }
                }
                name = name.substring(1,name.length()-1);
                if (name.equals("file")) {
                  if (buffer!=null)
                    buffer.close();
                  lastFileName = fileName;
    			  fileName="admin.jpg";
                  buffer = new java.io.FileOutputStream("/Programmi/Apache Software Foundation/Tomcat 5.5/webapps/Forum/Images/tmp/"+fileName);
                }
              }else if(s.startsWith("Content-Type") && state==1) {
                state = 2;
                contentType2 = s.substring(s.indexOf(":")+2,s.length()-2);
              }else if(s.equals("\r\n") && state != 3) {
                state = 3;
              }else {
                if (name.equals("file"))
                  buffer.write(b,0,x);
              }
            }
            sis.close();
            buffer.close();
          }catch(java.io.IOException e) {
            err = e.toString();
          }
        }
        boolean ok = err.equals("");
        if(!ok) {
          out.println(err);
        }else{
        %>
    <SCRIPT language="javascript">
      alert('Uploaded <%=lastFileName%>');
    </SCRIPT>
        <%
        }
        out.println("done");
    %>
    da segnalare che:
    1) la seguente riga
    codice:
     buffer = new java.io.FileOutputStream("/Programmi/Apache Software Foundation/Tomcat 5.5/webapps/Forum/Images/tmp/"+fileName);
    indica il percorso in cui salvare l'immagine

    2) io ho scaricato anche i jar di apache common e non so se senza funziona ugualmente o no...

    Spero di essere stato utile...
    PS: con questo codice mi servirebbe uno javascript per effettuare il controllo del peso dell'immagine e da inserire nell' onLoad del campo file <input name='Upload'> nella prima pagina html...potreste aiutarmi?

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Originariamente inviato da hellmarvel
    PS: con questo codice mi servirebbe uno javascript per effettuare il controllo del peso dell'immagine e da inserire nell' onLoad del campo file <input name='Upload'> nella prima pagina html...potreste aiutarmi?
    No... JavaScript viene trattato nell'apposito forum.


    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

  8. #8
    Ok grazie...potete chiudere

  9. #9
    Ragazzi buongiorno...ho un dubbio...avendo il codice postato su cm faccio nella jsp "upload.jsp" ad ottenere il percorso completo dell'immagine scelta? con l'istruzione "request.getParameter("file");" dove "file" è appunto il nome del campo mi viene restituito null...sto provando a "vivisezionare" il codice ma il percorso completo non riesco ad ottenerlo...

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    1
    salve ho iniziato da poco a programmare in jsp(per scuola) e mi serve poter fare l'upload di immagini su server,ho provato ad utilizzare questo cdice ma mi da questo errore:
    request null
    java.io.FileNotFoundException: \immaginidb\admin.jpg (Impossibile trovare il percorso specificato) done
    (si ho modificato il percorso ma penso sia relativo e non assoluto giusto?)
    sapete cosa potrebbe essere???
    grazie in anticipo

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.