11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour tout le monde,

Je suis en train de développer un script d'upload en AJAX qui utilise les nouveautés de XmlHttpRequest Level 2, c'est à dire la possibilité d'envoyer un fichier directement en AJAX sans passer par les bidouilles habituelles du style Flash ou iFrame.

Jusqu'ici mon script JS marche très bien (sous Firefox, Safari, Chrome) mais je me retrouve avec un soucis quand je suis côté PHP… En effet j'arrive à récupérer la data du fichier mais je ne sais pas comment récupérer les variables (filename, filesize, filetype) passées en request header.

Exemple si je fais un :

echo file_get_contents('php://input');


Je renvoie comme réponse mon stream en binaire.

J'ai également trouvé la méthode apache_request_headers() qui renvoie un array de tout les request headers, c'est ce que je cherche mais j'ai lu que cette méthode n'était compatible qu'avec Apache installé en tant que module. Hors je voudrais une méthode compatible avec toutes les configurations…

J'ai bien trouvé des moyens en parsant le contenu de l'Array $_SERVER mais bon je ne sais pas si c'est l'idéal…
Modifié par Fantattitude (11 Aug 2011 - 15:54)
Je n'ai pas la solution, néanmoins ce plug-in fait aussi de l'upload sans flash ni iframe :
http://valums.com/ajax-upload/
Du coup en l'étudiant, tu trouveras peut-être une piste ?

PS : vires les balises <?php ?> dans ton code, sinon il n'apparait pas.
J'ai finalement utilisé tout simplement les variables $_SERVER['HTTP******']. Cela m'évite d'utiliser le apache_request_headers qui est spécifique a certaines configuration. Je suis maintenant capable d'uploader des fichiers dynamiquement et de renvoyer sous forme de base64 encode les images au script Javascript pour vérifier que le transfert s'est bien passé et que l'image n'a subi aucune modification.