IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

probl�me upload avec XMLHttpRequest


Sujet :

JavaScript

  1. #1
    Membre confirm� Avatar de alexmorel
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    196
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2003
    Messages : 196
    Par d�faut probl�me upload avec XMLHttpRequest
    voil� depuis un formulaire je voudrai uploader une image sur mon serveur. Mais le fichier est vide.

    le fichier admin.js
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    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
     
    requete = new ActiveXObject("Microsoft.XMLHTTP"); 
     
    function photos(fichier) {
     
       /* on spécifie la méthode, l’URL et le type de transmission  */
    	requete.open("POST","photos.php",true);  
     
    	requete.onreadystatechange = function()
     	{
    		/* si on a recu la reponse */
    		if(requete.readyState == 4)
     		{  
    			/* on recoit les données et on les affichent*/
    			//document.getElementById("page").innerHTML = requete.responseText;
     
    			alert(requete.responseText);
    		}
    	}
    	var BOUNDARY="1cd1a122f321aac11bb7ac2e5f41bc86";
    	requete.setRequestHeader("Content-type", "multipart/form-data, boundary="+BOUNDARY);
     
    	var header= new String(); 
    	  header+="--"+BOUNDARY+"\r\n"; 
          //header+="Content-disposition: form-data; name=\"fich\"; filename=\""+fichier+"\"\r\n"; 
    	  header+="Content-disposition: form-data; name=\""+fichier.name+"\"; filename=\""+fichier.value+"\"\r\n"; 
          header+="Content-Type: application/octet-stream\r\n\r\n"; 
    	  header+="Content-Type: image/jpg\r\n\r\n"; 
          header+=fichier; 
          header+="\r\n--"+BOUNDARY+"--\r\n"; 
     
          requete.setRequestHeader("Content-length", header.length); 
        requete.send(header);  
      }
    le formulaire
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    <form method="post" enctype="multipart/form-data">
    <input type="file" name="image"   onChange="javascript:photos(this)">
    <input type="submit" name="Submit2"  value="Envoyer">
    </form>
    et la page photo
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $stock = '';
    $fichier=$_FILES['image'];
     
    $fread = fopen($fichier['tmp_name'],"r") ; 
           $save = fread($fread,filesize($fichier['tmp_name'])); 
           fclose($fread); 
           $fwrite = fopen($stock .    $fichier['name'],"w"); 
           fwrite($fwrite,$save,strlen($save)); 
           fclose($fwrite);
    Le fichier se cr�e bien a la bonne place avec le bon nom mais il est vide

    Et je vois pas ou est l'erreur.

    Un peu d'aide serait la bienvenue merci

  2. #2
    Expert confirm� Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par d�faut
    Tu ne peux pas uploader un fichier par javascript pour la simple et bonne raison que javascript, s�curit� onlige, ne peux acceder au filesystem et donc ne peut lire le fichier pour le mettre dans ta requete POST...

    Il va falloire trouver une autre m�thode

  3. #3
    Membre �prouv�
    Profil pro
    Inscrit en
    D�cembre 2002
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2002
    Messages : 93
    Par d�faut
    Est-ce vraiment n�cessaire de te servir de XMLHttpRequest ? C'est bien beau le AJAX, mais �a n'a pas toute les vertus...

    Je te sugg�re de poster ton formulaire avec comme target un IFRAME cach� qui load ta page PHP .

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    <form target="monIFRAME" action="photos.php" id="monFORM" name="monFORM" method="post" enctype="multipart/form-data"> 
    <input type="file" name="image"   onChange="javascript:photos(this)"> 
    <input type="submit" name="Submit2"  value="Envoyer"> 
    </form>
    Si tu fais ta page en XHTML, la propri�t� TARGET n'est pas reconnue. Il faut passer outre cette limitation en te servant de JavaScript, juste avant de poster ton FORM :

    Exemple : document.getElementById("monFORM").target = "monIFRAME" ;

Discussions similaires

  1. [AJAX] Utilisation XMLHttpRequest
    Par DJERO77 dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 02/08/2007, 10h27
  2. Probl�me d'envoi d'un formulaire avec xmlhttprequest
    Par lecra dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 12/10/2006, 17h35
  3. Probl�me de textarea avec XMLHTTPRequest !
    Par liv dans le forum G�n�ral JavaScript
    R�ponses: 26
    Dernier message: 26/04/2006, 09h56
  4. [Upload] Probl�me upload de gros fichiers avec Firefox
    Par the rootsm@n dans le forum Langage
    R�ponses: 12
    Dernier message: 19/02/2006, 20h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo