Premetto che sono un principiante di Javascript e Ajax.
Quindi abbiate pazienza.
Questo è il codice js.
codice:
function assegnaXMLHttpRequest() {

	// lista delle variabili locali
	// variabile di ritorno, nulla di default
	var XHR = null;
	// informazioni sul nome del browser
	var browserUtente = navigator.userAgent.toUpperCase();
	// browser standard con supporto nativo
	// non importa il tipo di browser
	if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")
		XHR = new XMLHttpRequest();
		// browser Internet Explorer
		// è necessario filtrare la versione 4
	else if(
		window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0
	) {
	// la versione 6 di IE ha un nome differente
	// per il tipo di oggetto ActiveX
	if(browserUtente.indexOf("MSIE 5") < 0)
		XHR = new ActiveXObject("Msxml2.XMLHTTP");
		// le versioni 5 e 5.5 invece sfruttano lo stesso nome
	else
		XHR = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		alert('Giving up :( Non riesco a creare una istanza XMLHTTP');
		return false;		
	}
	return XHR;
}
function caricaFoto(url){
	var ajax = assegnaXMLHttpRequest();
	if (ajax){
		//Evitiamo doppio click
		if(!ajax.clicked){
			clicked = true;
			document.getElementById("foto1").disabled = "disabled";
			ajax.open("post","#",true);
			// imposto il giusto header
			ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");	
			ajax.setRequestHeader("connection", "close");
			ajax.send("action=richiesta" + "&" + "foto_url=" + url );
			ajax.onreadystatechange = function(){
				if (ajax.readyState == 4){
					//Sono pronto!
					if (ajax.status == 200) {
						// perfetto!Tutto a buon fine!

					}else{

						// c'è stato un problema nella richiesta,
						// per esempio un codice di errore 404 (Not Found)
						// o 500 (Internal Server Error)
						alert("Attenzione.Formato dell'immagine non compatibile.Riprovare piu tardi");
					}
				}else{
					//Risposta non ancora arrivata rimani in attesa

				}
			}
		}
	}
}
Nella stessa pagina ecco il codice html:
codice:
	
	<form name="mod_profilo" enctype="multipart/form-data" id="mod_profilo" action="#">
<div id="div_foto">Inserisci la tua foto
<input src="**" type="file" name="foto1" align="middle" id="foto1" onchange="caricaFoto(this.value);" /></div>
</form>
Sempre nella stessa pagina il codice php
codice:
case 'richiesta':
	require("../inc/dbconn.inc.php");
	$uploadfile = $UPLOAD_FOTO . $_FILES['userfile']['name'];
	//Se esiste la variabile _
	if (isset($_FILES['foto'])){
		if ($_FILES['foto']['type'] == "image/gif" || $_FILES['foto']['type'] == "image/jpg" ||  $_FILES['foto']['type'] == "image/jpeg" ){
		if ($_FILES['foto']['size'] < 60000){
			if (move_uploaded_file($_FILES['foto']['tmp_name'], $uploadfile)){
				mysql_query("UPDATE utente SET foto_url = '".$_FILES['userfile']['name']."' WHERE id_utente = '".$_SESSION['Ambiente']['utente']['id_utente']."' ")or die(mysql_error());
				}
			}
		}
	}

#header("Location: modifica.profilo.php");
break;
}
In pratica dovrei caricare su database l'immagine che viene selezionata tramite l'input file del form.