Era un problema di caratteri speciali.
non ho simulato la servlet, ma un semplice main.
All'inizio avevo il tuo stesso problema, ma alla fien l'ho risolto:
codice:
try{
File file = new File("C:\\files", "prova.txt");
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/test", "", "");
Statement stmt = conn.createStatement();
String path = file.getAbsolutePath().replaceAll("\\\\", "\\\\\\\\");
String qryIns = "insert into immagini values(null, '" + file.getName() + "', '" + path + "');";
stmt.executeUpdate(qryIns);
stmt.close();
conn.close();
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}
La replace è decisamente bruttina, ma lo "\" è un carattere speciale e indica che dopo di lui c'è un carattere speciale quindi
"\\\\" i primi due sono per indicare di sostituire lo \ ma alla replaceAll deve arrivare \\ perchè anche lei prende il carattere dopo lo \
In pratica se ne pettono quattro per farne arrivare due alla replace che ne interpreterà uno
neanche provo a spiegare "\\\\\\\\" a parole!
ti posto anche lo script di creazione della tabella visto che tu non lo avevi e io l'ho dovuta creare.
Codice PHP:
CREATE TABLE `IMMAGINI` (
`id` INT NOT NULL AUTO_INCREMENT ,
`nome` VARCHAR( 250 ) NOT NULL ,
`percorso` VARCHAR( 250 ) NOT NULL ,
PRIMARY KEY ( `id` )
) TYPE = MYISAM ;