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!