hellmarvel

Utenti
  • Numero contenuti

    4
  • Iscritto

  • Ultima visita

Tutti i contenuti di hellmarvel

  1. Ok allora lo posto: questa è la pagina html dove uploadare l'immagine: <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 pagina "upload.jsp" (è un pò lunghina): <% response.setContentType("text/html"); response.setHeader("Cache-control","no-cache"); 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; boolean stamp=false; while((x=sis.readLine(b,0,1024))>-1) { String s = new String(b,0,x); if(s.startsWith(boundary)) { state = 0; 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"> //history.back(1) alert('Uploaded <%=lastFileName%>'); //window.location.reload(false) </SCRIPT> <% } out.println("done"); %> Da segnalare che: 1) ho scaricato giorni prima i jar apache common che ho letto servono per l'upload ma non so se questo codice funziona ugualmente senza; 2) la riga: buffer = new java.io.FileOutputStream("/Programmi/Apache Software Foundation/Tomcat 5.5/webapps/Forum/Images/tmp/"+fileName); indica appunto il percorso lato server su cui salvare il file... Il mio dubbio ora è: con questo codice come faccio per ottenere il percorso completo del file scelto? ho provato con "request.getParameter("file");" dove appunto "file" è la casella della pagina html dove carichiamo l'immagine ma mi vien restituito "null"...cm posso fare?
  2. Ho applicato il codice per l'upload di una immagine postato all'inizio della discussione però mi veniva lanciata un'eccezione (postata nel mio messaggio su), girando in alcuni forum inglesi ho trovato del codice, più lungo rispetto a quello qui sopra...posso postarlo ugualmente il codice che ho trovato nonostante appartiene ad un altro forum?
  3. Ho risolto ragazzi...tutto a posto...ciauz
  4. Salve a tutti...io dovrei fare l'upload di una immagine in jsp...ho applicato il codice postato poco fa e ho scaricato i jar di apache common necessari...ma mi viene lanciata quest'eccezione: javax.servlet.ServletException: org/apache/commons/io/output/DeferredFileOutputStream Come posso risolvere cio'? vi prego aiutatemi :sigh: