PDA

View Full Version : [javascript] usare AJAX per caricare un immagine


DesmoColo
31-10-2008, 17:45
Salve.
Ho una pagina web con il seguente input
<input type="file" name="my_img" id="my_img" onclick='uploadPicture()'/>
Per ragioni di compatibilità con Firefox non posso scrivere
<form action="#" id="nuovanewsletter" method="POST" enctype='multipart/form-data'>
<input type="file" name="my_img" id="my_img" onclick='uploadPicture()'/>
</form>

se mettessi il form, AJAX mi darebbe errore (non so perché ma è appurato che è così. :-))
In javascript ho scritto il seguente codice:

function getNewsletterParameter(){
var newsletter_img = document.getElementById("my_img").value;
var imageToUpload = "allegato=" + newsletter_img;
return imageToUpload;
}


function uploadPicture(){
createXMLHttpRequest();
var url = "my_show_news.php";
var queryString = getNewsletterParameter();
alert("Query:"+queryString);
xmlHttp.open("POST",url,true);
xmlHttp.onreadystatechange = handleUploadChange;
xmlHttp.setRequestHeader("Content-Type","multipart/form-data; charset=UTF-8");
xmlHttp.send(queryString);
}


function handleUploadChange(){
if(xmlHttp.readyState == 4){

if(xmlHttp.status == 200){
var stampares = xmlHttp.responseText;
alert(stampares);
}
else{
alert("Errore durante l'esecuzione della richiesta. xmlHttp.status = " +xmlHttp.status);
}
}
}

in show_news.php dovrei fare
$img = $_FILE['my_img']

ma l'array risulta vuoto.
Come posso fare?