envoie de fichier via xhr

Mammouth du PHP | 1311 Messages

23 déc. 2005, 18:39

salut
j'ai un ppetit probleme xhr c'est que je n'arrive pas a envoye de fichier vers le serveurs pourtant je precise l'encodage

quand je fair un print_r(files) celui ci est vide
comment envoyer un fichier avec xhr??

en fait il boundary dans l'entete que j'envoi mais comment je peut géré cela

Mammouth du PHP | 1311 Messages

24 déc. 2005, 01:13

bon j'ai commencer mais ca plante mais je sais pas ou

Code : Tout sélectionner

xmlhttp.open("POST", url, true); //ouverture asynchrone switch(type){ case 1:xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');break; case 2: var BOUNDARY=hex_sha1('coco') //**********************************************************// // var BOUNDARY="1cd1a122f321aac11bb7ac2e5f41bc86"; // chaine arbitraire ne devant pas se trouver dans un ficheir uploadé var header= new String(); xmlhttp.setRequestHeader("Content-type", "multipart/form-data, boundary="+BOUNDARY); header+="--"+BOUNDARY+"\r\n"; header+="Content-disposition: form-data; name=\""+arr['id']+"\"; filename=\""+arr['name']+"\"\r\n"; header+="Content-Type: application/octet-stream\r\n\r\n"; header+='<"'+arr['name']+'" Data>'; header+="\r\n--"+BOUNDARY+"--\r\n"; header+="Content-disposition: form-data; name=\""+arr['nameZ']+"\n"; header+=arr['size']; header+="\r\n--"+BOUNDARY+"--\r\n"; xmlhttp.setRequestHeader("Content-length", header.length); //***********************************************************// data=header; break; } alert(url+'-------w'+data); xmlhttp.send(data);

Mammouth du PHP | 1311 Messages

24 déc. 2005, 12:21

voici ce que ca donne
	xmlhttp.open("POST", url, true); //ouverture asynchrone
		switch(type){
			case 1:xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');break;
			case 2:

			var BOUNDARY=hex_sha1('coco')

			//**********************************************************//
			// var BOUNDARY="1cd1a122f321aac11bb7ac2e5f41bc86"; // chaine arbitraire ne devant pas se trouver dans un ficheir uploadé
			var header= new String();
			xmlhttp.setRequestHeader("Content-type", "multipart/form-data, boundary="+BOUNDARY);
			header+="--"+BOUNDARY+"\r\n";
			header+="Content-disposition: form-data; name=\""+arr['id']+"\"; filename=\""+arr['name']+"\"\r\n";
			header+="Content-Type: application/octet-stream\r\n\r\n";
			header+='<"'+arr['name']+'" Data>';
			header+="\r\n--"+BOUNDARY+"--\r\n";
			header+="Content-disposition: form-data; name=\""+arr['nameZ']+"\n";
			header+=arr['size'];
			header+="\r\n--"+BOUNDARY+"--\r\n";
			xmlhttp.setRequestHeader("Content-length", header.length);
			//***********************************************************//
			data=header;
			break;
		}
		alert(url+"\n\r\t"+data);
Image
mais ca ne fonctionne pas
est ce qu'il manque des infos