spiego meglio, ho un form nella pag newhtml.html cosi formata
Codice PHP:
<html>
    <
head>
        <
title></title>
        <
meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </
head>
    <
body>
        
        <
form action="Controller" method="post" enctype="multipart/form-data">
            
Uppatoda: <input type="text" name="user">
            <
input type="file" name="fileUpload"/>
            
solo file tipo .xls
            
<input type="submit" value="Invia"/>
        </
form>
        
    </
body>
</
html
quando clicco su invia vado nella servlet Controller.java dove prendo il file, e lo salvo.Fin qui non ho trovato difficoltà. Il problema arriva ora.
Ho creato una tabella ListaFile composta da 2 colonne (UppatoDa, NomeFile), da usare per verificare se è presente un file con quello stesso nome.

Codice PHP:
Connection con null;
        
        
        
String user request.getParameter("user");
               
        
boolean isMultipart ServletFileUpload.isMultipartContent(request);

        if(
isMultipart){
            try {
                Class.
forName("com.mysql.jdbc.Driver");
                
String connectionUrl "jdbc:mysql://localhost/prova?" "user=root&password=";
                
con DriverManager.getConnection(connectionUrl);
                
Statement stmt con.createStatement();
                
                
DiskFileItemFactory factory = new DiskFileItemFactory();
                
ServletFileUpload upload = new ServletFileUpload(factory);
                List 
items upload.parseRequest(request);
                
Iterator itr items.iterator();
                
                while(
itr.hasNext()) {
                    
FileItem item = (FileItemitr.next();  
                    
                    if(!
item.isFormField()) {
                        
File fullFile  = new File(item.getName()); 
                        
File savedFile = new File(getServletContext().getRealPath("/"), fullFile.getName());
                        
item.write(savedFile);
                    } 
                    
String nomeFileitem.getName();
                    
                    
ResultSet rs stmt.executeQuery("Select * From listafile Where NomeFile= '"+nomeFile+"'");
                    
rs.last(); 
                    
int nRighe rs.getRow(); 
                    if (
nRighe==0){
                        
stmt.executeUpdate("INSERT INTO listafile (UppatoDa,NomeFile) VALUES ('"+user+"','"+nomeFile+"' ) ");
                    }
                    else {
                        
out.println("il file è gia presente");
                    }
                    
                    
                }
//fine while
                
out.println("File salvato ");
                
                
                
                
                
            }catch (
Exception e) {
                
out.println("errore: "+e.getMessage());
            }
        } 
In questo modo, però ho dovuto mettere le istruzioni SQL nel while, e so che è sbagliato, ma se le metto dopo dal while, la verifica non ha senso perchè il file risulterà essere stato salvato. Avevo pensato di mettere le istruzioni SQL prima del while ma ho l'errore sulla riga
Codice PHP:
String nomeFileitem.getName(); 
(su item). La domanda è, come posso ottenere il nome del file che passo dalla form, prima che questo venga salvato?


In modo logico vorrei poter fare questo


Codice PHP:
Connection con null;
        
        
        
String user request.getParameter("user");
               
        
boolean isMultipart ServletFileUpload.isMultipartContent(request);

        if(
isMultipart){
            try {
                Class.
forName("com.mysql.jdbc.Driver");
                
String connectionUrl "jdbc:mysql://localhost/tesi?" "user=root&password=";
                
con DriverManager.getConnection(connectionUrl);
                
Statement stmt con.createStatement();
                
                
DiskFileItemFactory factory = new DiskFileItemFactory();
                
ServletFileUpload upload = new ServletFileUpload(factory);
                List 
items upload.parseRequest(request);
                
Iterator itr items.iterator();
                
                
                    
String nomeFileitem.getName(); // qui c'è l'errore su item
                    
                    
ResultSet rs stmt.executeQuery("Select * From listafile Where NomeFile= '"+nomeFile+"'");
                    
rs.last(); 
                    
int nRighe rs.getRow(); 
                    if (
nRighe==0){
                        while(
itr.hasNext()) {
                            
FileItem item = (FileItemitr.next();
                            if(!
item.isFormField()) {
                                
File fullFile  = new File(item.getName()); 
                                
File savedFile = new File(getServletContext().getRealPath("/"), fullFile.getName());
                                
item.write(savedFile);
                            } 
                        }
                        
stmt.executeUpdate("INSERT INTO listafile (UppatoDa,NomeFile) VALUES ('"+user+"','"+nomeFile+"' ) ");
                    }
                    else {
                        
out.println("il file è gia presente");
                    }  
            }catch (
Exception e) {
                
out.println("errore: "+e.getMessage());
            }
        }