Du côté PHP, je reçois bien les données comme le montre le var_dump($_FILES) ci-dessous. Mais le fichier n'a en fait pas été envoyé (seulement son nom) car tmp_name est vide !
function ajax (a) {
var xhr = null, c;
if (window.ActiveXObject) {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
} else {
xhr = new XMLHttpRequest();
}
a.method = a.method || "GET";
a.success = a.success || function () { };
a.error = a.error || function () { alert("Error")};
if (a.method.match(/post/ig)) {
var form = new FormData();
for (f in a.data) {
form.append(f, a.data[f]);
}
c = form;
} else {
var e = '';
for (f in a.data) {
e += a.data[f] + '=' + f + '&';
}
a.url += e.substr(0, e.length - 1);
}
xhr.open(a.method, a.url, true);
(a.XMLHttpRequest == void 0 || a.XMLHttpRequest) && xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {//si c'est ok
var k = xhr.responseText;
a.success(k);
} else if (xhr.readyState == 4 && xhr.status != 200) {// si c'est ko
a.error(xhr.responseText, xhr.status);
}
};
xhr.send(c == undefined || !c || c == null ? null : c));
}
function SendFile() {
var input = document.getElementById("id_de_l'input");
ajax({
method: "POST",
url: "la_page_cible.php",
data: {
fichier: input.files[0] //[0] car il peut en avoir plusieurs si tu es en multi
},
success: function(response) {
//ton action
}
})
}
(je pense que le code marche)
Voilà bonne journée
Upload un fichier avec Ajax
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.