Android send image with httpPost to a Servlet multipart
===

I try to send an image to using the multipart, like I read here [http://stackoverflow.com/a/2937140/1552648][1] but when it arrive to the servlet it doesn't take any thing.

Here is the android java code, where I send some text and the image that I have the IMG_URL from de SD card

    private void enviarAlServidorConFoto(Incidencia incide, String IMG_URL){
		
		HttpClient httpClient = new DefaultHttpClient();
		
		HttpPost httpPost = new HttpPost(urlservidor + "AnyadirIncidenciaAndroid");
		
		try {
			//MultipartEntity multiPart = new MultipartEntity();
			MultipartEntity multiPart = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
			
			multiPart.addPart("usuario", new StringBody(incide.getUsuario()));
			multiPart.addPart("latitud", new StringBody(incide.getLatitud()+""));
			multiPart.addPart("longitud", new StringBody(incide.getLongitud()+""));
			multiPart.addPart("descripcion", new StringBody(incide.getDescripcion()));
			multiPart.addPart("tipo", new StringBody(incide.getTipo()));
			// YA la pongo desde la web a normal postParametros.add(new BasicNameValuePair("prioridad", value));
			multiPart.addPart("foto", new StringBody(incide.getFoto()));
			//no se pasa el nombre de la foto, puesto que ya lo extraera cuando se mande la foto sola
			multiPart.addPart("FotoIncidenciaAndroid", new FileBody(new File(IMG_URL)));
			
			httpPost.setEntity(multiPart);
		} catch (UnsupportedEncodingException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
	
		try{	
			HttpResponse res = httpClient.execute(httpPost);
			res.getEntity().getContent().close();
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		}catch (IOException e){
			e.printStackTrace();
			Log.d("EnviadoAweb", e.toString());
		}
	}

Then, here is the servlet with multipart also.

    @WebServlet(name="AnyadirIncidenciaAndroid", urlPatterns={"/android/AnyadirIncidenciaAndroid"}, loadOnStartup=1)
@MultipartConfig(location="c:\\temp", fileSizeThreshold=1024*1024, maxFileSize=1024*1024*5, maxRequestSize=1024*1024*5*5)
public class AnyadirIncidenciaAndroid extends HttpServlet {
	
	private static final long serialVersionUID = -6704540377265399620L;

	/**
     * @see HttpServlet#HttpServlet()
     */
    public AnyadirIncidenciaAndroid() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		final String usuario = request.getParameter("usuario");
		
		System.out.println("Usuario recuperado al dar la incidencia desde movil: " + usuario);
		
		IncidenciaDAO idao = new IncidenciaDAO();
		Timestamp fechaalta = new Timestamp(System.currentTimeMillis());
		Timestamp fechafin = null;
		double latitud = Double.parseDouble(request.getParameter("latitud"));
		double longitud = Double.parseDouble(request.getParameter("longitud"));
		String descripcion = request.getParameter("descripcion");
		String tipo = request.getParameter("tipo");
		String estado = "Nueva";
		String prioridad = "Normal";
		String empleado = null; //al tratarse de una incidencias nueva, aun no tenemos ningun empleado que la halla resuelto
		String foto = request.getParameter("foto");
		String nombrefoto = null;
		
		/* 
		 * Si tenemos foto creada en la aplicacion movil, entonces tendremos que guardar el nuevo
		 * nombre de la incidencia, en caso, de no tener foto, pondremos una string vacio,
		 * y pondremos la imagen por defecto de sin imagen.
		 */
		Part p1 = request.getPart("FotoIncidenciaAndroid");
		
		if(foto.equalsIgnoreCase("Si")){
			try {
				nombrefoto = idao.RenombrarFoto();
				// guardamos la foto con su nombre
				p1.write(nombrefoto);
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
				
		try {
			idao.anyadirIncidenciaMapaWeb(fechaalta, fechafin, latitud, longitud, descripcion, tipo, estado, prioridad, usuario, empleado, foto, nombrefoto);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

How I have to do to take from what I send from de request?
Because that show me that the variable usuario is null

final String usuario = request.getParameter("usuario");
System.out.println("Usuario recuperado al dar la incidencia desde movil: " + usuario);

Thanks in advance.

  [1]: http://stackoverflow.com/a/2937140/1552648