Erreur formulaire avec XMLHttpRequest
Bonjour,
j'ai un problème avec un formulaire et notamment un champ de type "file". Ce formulaire est traité par une fonction javascript qui se charge de faire une XMLHttpRequest et qui envoit les données vers une page PHP. Sur ma page PHP, je n'ai pas de problème pour récupérer les données de type "text". En revanche, j'ai une erreur pour ma donnée de type "file". J'obtiens une erreur de type "Undefined index...".
Voici des extraits de mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
// My form
<form action="" method="" enctype="multipart/form-data">
<input type="hidden" name="max_file_size" value="1000000" />
File : <input type="file" name="image" />
Title : <input type="text" name="title" />
<input type="submit" value="Add" onClick="sendRequest(this.form)" />
</form>
// sendRequest function
function sendRequest(f) {
var xmlRequest = null;
var url = null;
var data = null
if(window.XMLHttpRequest) // Firefox
xmlRequest = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
var url = "doAddImage.php"
var image = f.elements["image"].value;
var title = f.elements["title"].value;
data = "image="+image+"&title="+title;
document.getElementById("display").innerHTML = '<div>Loading...</div>';
xmlRequest.open("POST", url , true);
xmlRequest.onreadystatechange = function() {
if (xmlRequest.readyState == 4) {
var content = document.getElementById("display");
content.innerHTML = xmlRequest.responseText;
}
}
xmlRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlRequest.send(data);
}
// doAddImage.php
<?
header('Content-type: text/html; charset=iso-8859-1');
$title = utf8_decode($_POST["title"]);
$image = $_FILES["image"]["tmp_name"];
$image_name = $_FILES["image"]["name"];
?> |
L'erreur apparait pour les lignes suivantes
$image = $_FILES["image"]["tmp_name"];
$image_name = $_FILES["image"]["name"];