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

    [JAVA] caricamento immagini su DB

    Salve,
    dovrei creare su un sito web un form per caricare delle immagini, inserirle in un database e all'occorrenza visualizzare le immagini caricate per inserirle sul sito. Per ora mi soffermo solo sulla parte caricare le immagini sul server e database.

    Per il form ho creato una pagina html di test, dove provaimg è la mia servlet:

    Codice PHP:
    <html>

    <
    head><title>Image Upload</title></head>

    <
    body>
        <
    form action="/CaricamentoImmagini/provaimg" method="post" enctype="multipart/form-data" name="productForm" id="productForm">


            <
    table width="400px" align="center" border=0 style="background-color:ffeeff;">
                <
    tr>
                    <
    td align="center" colspan=2 style="font-weight:bold;font-size:20pt;">Image Details</td>
                </
    tr>

                <
    tr>
                    <
    td align="center" colspan=2></td>
                </
    tr>

                <
    tr>
                    <
    td>Image Link: </td>
                    <
    td>
                        <
    input type="file" name="file" id="file">
                    <
    td>
                </
    tr>

                <
    tr>
                    <
    td></td>
                    <
    td><input type="submit" name="Submit" value="Submit"></td>
                </
    tr>
                <
    tr>
                    <
    td colspan="2"></td>
                </
    tr>

            </
    table>
        </
    form>
    </
    body>

    </
    html
    La servet che ho per caricare le immagini è la seguente:

    Codice PHP:
    package classes;

    import java.io.*;
    import java.sql.*;
    import java.util.*;
    import java.text.*;
    import java.util.regex.*;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.*;

    import javax.servlet.*;
    import javax.servlet.http.*;

    public class 
    caricamentoimg extends HttpServlet{
      public 
    void doPost(HttpServletRequest request
      
    HttpServletResponse response
      
    throws ServletExceptionIOException {
      
    PrintWriter out response.getWriter();
      
    boolean isMultipart ServletFileUpload.isMultipartContent(
      
    request);
      
    System.out.println("request: "+request);
      if (!
    isMultipart) {
      
    System.out.println("File Not Uploaded");
      } else {
      
    FileItemFactory factory = new DiskFileItemFactory();
      
    ServletFileUpload upload = new ServletFileUpload(factory);
      List 
    items null;

      try {
      
    items upload.parseRequest(request);
      
    System.out.println("items: "+items);
      } catch (
    FileUploadException e) {
      
    e.printStackTrace();
      }
      
    Iterator itr items.iterator();
      while (
    itr.hasNext()) {
      
    FileItem item = (FileItemitr.next();
      if (
    item.isFormField()){
      
    String name item.getFieldName();
      
    System.out.println("name: "+name);
      
    String value item.getString();
      
    System.out.println("value: "+value);
      } else {
      try {
      
    String itemName item.getName();
      
    Random generator = new Random();
      
    int r Math.abs(generator.nextInt());

      
    String reg "[.*]";
      
    String replacingtext "";
      
    System.out.println("Text before replacing is:-" 
      
    itemName);
      
    Pattern pattern Pattern.compile(reg);
      
    Matcher matcher pattern.matcher(itemName);
      
    StringBuffer buffer = new StringBuffer();

      while (
    matcher.find()) {
      
    matcher.appendReplacement(bufferreplacingtext);
      }
      
    int IndexOf itemName.indexOf("."); 
      
    String domainName itemName.substring(IndexOf);
      
    System.out.println("domainName: "+domainName);

      
    String finalimage buffer.toString()+"_"+r+domainName;
      
    System.out.println("Final Image==="+finalimage);

      
    File savedFile = new File("/Users/danielepach/Documents/SPAZIOJAVA2/apache-tomcat-7.0.26/webapps/ROOT/"+"images\\"+finalimage);
      
    item.write(savedFile);
      
    out.println("<html>");
      
    out.println("<body>");
      
    out.println("<table><tr><td>");
      
    out.println("<img src=images/"+finalimage+">");
      
    out.println("</td></tr></table>");

      
    Connection conn null;
      
    String url "jdbc:mysql://localhost:3306/";
      
    String dbName "test";
      
    String driver "com.mysql.jdbc.Driver";
      
    String username "root"
      
    String userPassword "root";
      
    String strQuery null;
      
    String strQuery1 null;
      
    String imgLen="";

      try {
      
    System.out.println("itemName::::: "+itemName);
      Class.
    forName(driver).newInstance();
      
    conn DriverManager.getConnection(url+dbName,username,
      
    userPassword);
      
    Statement st conn.createStatement();
      
    strQuery "insert into testimage set image='"+
      
    finalimage+"'"
      
    int rs st.executeUpdate(strQuery);
      
    System.out.println("Query Executed Successfully++++++++++++++");
      
    out.println("image inserted successfully");
      
    out.println("</body>");
      
    out.println("</html>");  
      } catch (
    Exception e) {
      
    System.out.println(e.getMessage());
      } finally {
      
    conn.close();
      }  
      } catch (
    Exception e) {
      
    e.printStackTrace();
      }
      }
      }
      }
      }

    Però quando vado a caricare il file ottengo un eccezione... qualcuno potrebbe dirmi dove sbaglio e nel caso aiutarmi a risolvere? Grazie!

  2. #2
    qualcuno potrebbe dirmi qual'è l'eccezione che si presenta? eheheh

  3. #3
    Mi esce scritto
    HTTP STATUS 500

    codice:
    type Exception report
    
    message
    
    description The server encountered an internal error () that prevented it from fulfilling this request.
    
    exception
    
    javax.servlet.ServletException: Error instantiating servlet class classes.caricamentoimg
    	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
    	org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
    	java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    	java.lang.Thread.run(Thread.java:637)
    root cause
    
    java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileUploadException
    	java.lang.Class.getDeclaredConstructors0(Native Method)
    	java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
    	java.lang.Class.getConstructor0(Class.java:2699)
    	java.lang.Class.newInstance0(Class.java:326)
    	java.lang.Class.newInstance(Class.java:308)
    	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
    	org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
    	java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    	java.lang.Thread.run(Thread.java:637)
    root cause
    
    java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileUploadException
    	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701)
    	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)
    	java.lang.ClassLoader.loadClassInternal(ClassLoader.java:399)
    	java.lang.Class.getDeclaredConstructors0(Native Method)
    	java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
    	java.lang.Class.getConstructor0(Class.java:2699)
    	java.lang.Class.newInstance0(Class.java:326)
    	java.lang.Class.newInstance(Class.java:308)
    	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
    	org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
    	java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    	java.lang.Thread.run(Thread.java:637)
    note The full stack trace of the root cause is available in the Apache Tomcat/7.0.26 logs.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    C'è una sezione apposita dedicata a Java: sposto la discussione.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ci sono diversi errori che si presentano in questo caso:
    il primo è qui
    codice:
    javax.servlet.ServletException: Error instantiating servlet class classes.caricamentoimg
    per qualche motivo non si riesce ad istanziare la classe caricamentoimg

    a cui si aggiunge

    codice:
    java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileUploadException
    Per non saper né leggere né scrivere proverei una pulizia totale dell'ambiente di lavoro (clean del progetto con successiva rebuild), un-deploy del progetto dal web server, re-deploy del progetto aggiornato, ritenta l'upload.

    Non so se lo hai fatto, ma a volte questi errori possono risolversi in modo semplice visto che provando e riprovando magari non aggiorna tutto tutto
    RTFM Read That F*** Manual!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    41
    Se non ricordo male il No class def found vuol dire che ti manca un Jar, o che magari questo jar punta a un package diverso.

    Non so se sia questo il problema , ma tanto vale fare un tentativo

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da yirion
    Se non ricordo male il No class def found vuol dire che ti manca un Jar, o che magari questo jar punta a un package diverso.

    Non so se sia questo il problema , ma tanto vale fare un tentativo
    infatti, hai ragione, non c'è la definizione della classe.
    Con le web app capita che ci sia un disallineamento tra quello su cui lavori e quello che in realtà vede il web container, quindi la pulizia, undeploy e redeploy dovrebbero ovviare a questo problema.
    Ovvio che se così non si risolve, bisogna controllare il classpath del container e della web app
    RTFM Read That F*** Manual!!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    9
    Se sei in eclipse ti consiglierei di premere i tasti CTRL+SHIFT+T e digitare FileUploadException, vedi se la trova in qualche jar che hai nel classpath. Se non trovi la classe, prova a capire cosa includere usando findjar.com

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.