Salve a tutti, devo realizzare un sito dove sia possibile fare l'upload di un'immagine, questa a sua volta deve comparire ed essere caricata in un db senza che la pagina si resetti.
La funzione che ho usato per farla comparire è la seguente:
HTML
JAVASCRIPT<input type='file' onchange="readURL(this);" id="caricfile" />
e funziona.function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
varul=e.target.result;
$('#blah')
.attr('src', e.target.result)
.width(183)
.height(200);
document.getElementById("debug").value = varul;
}
reader.readAsDataURL(input.files[0]);
}
}
Ora rimane il problema di caricare l'immagine in questione nel db.
La variabile varul contiene e.target.result che da quel che ho capito è una sorta di codifica per l'immagine che carico.
Ovviamente devo usare del codice AJAX e quindi:
Quindi è come se inviassi l'immagine (sotto forma di e.target.result) alla pagina php, la quale trasformerebbe dapprima la stringa in immagine e successivamente caricherebbe quest'ultima nel DB.function carica_immagine(){
var oXHR = new XMLHttpRequest();
var params;
oXHR.open("post", "invia_foto.php", true);
oXHR.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
oXHR.onreadystatechange = function(){
if(oXHR.readyState==4){
if(oXHR.responseText == "OK"){
}
else {
}
}
}
params = "code="+encodeURIComponent(varul);
oXHR.send(params);
}
Il problema sta nel fatto che e.target.result non è un formato che posso copiare nel file, qualcuno ha un'idea di come posso fare? Vanno bene anche librerie che permettono di fare ciò.
Grazie.