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

WinDev Discussion :

Upload Image HttpRequete [WD21]


Sujet :

WinDev

  1. #1
    Membre confirmé Avatar de Nhaps
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 350
    Points : 603
    Points
    603
    Par défaut Upload Image HttpRequete
    Bonjour,

    J'essaye d'upload une image sur un serveur en utilisant la méthode HttpRequete mais sans succés pour le moment. Voici le code actuel.

    Code Windev
    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
     
    sTrame est une chaîne
    sFinTrame est une chaîne
    sDelimiteur est une chaîne = "BOUNDBOUND"
    sContentType est une chaîne ="multipart/form-data; boundary="+sDelimiteur
    sUrl est une chaîne = "https://MonSite/Script.php"
     
    //On récupere les informations de l'image
    nIdFichier est un entier = fOuvre(:m_sPhoto)
    sContenuFichier est une chaîne  = fLit(nIdFichier,fTaille(:m_sPhoto))
    fFerme(nIdFichier)
     
    //On créé le nom de la photo suivant l'id du plat
    sNomFichier est une chaîne = URLEncode(:m_nIdPlat + ".jpg")
     
    //construction de la trame
    sTrame+=RC+"--"+sDelimiteur+RC+"Content-disposition: form-data;name=upload"+RC+RC+"1"
    sTrame+=RC+"--"+sDelimiteur+RC+"Content-disposition: form-data;name=filename;filename="+sNomFichier+RC
    sTrame+="Content-Type: image/jpg"+RC+RC
     
     
    sFinTrame+=RC+"--"+sDelimiteur+"--"+RC
     
    sMessage est une chaîne = sTrame + sContenuFichier + sFinTrame
     
    SI HTTPRequête(sUrl,"","",sMessage,sContentType) ALORS
    	sTest est une chaîne = HTMLVersTexte(HTTPDonneRésultat(httpRésultat))
    	RENVOYER Vrai
    SINON
    	RENVOYER Faux
    FIN

    Script PHP
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
        //On verifie si on a recu un fichier
        if (isset($_FILES)){
     
            $uploadfile = "https://MonSite/Image/" . urldecode($_FILES['filename']['name']);
     
            if (!move_uploaded_file($_FILES['filename']['tmp_name'],$uploadfile)){
                die("Erreur");
            }
     
            echo true;
        }
    ?>


    Et pour l'instant mon httpDonneRésultat me renvoie

    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
     
    Array
    (
        [upload] => 1
    )
    Array
    (
        [filename] => Array
            (
                [name] => 43.jpg
                [type] => image/jpg
                [tmp_name] => C:\Windows\Temp\phpB1E.tmp
                [error] => 0
                [size] => 540630
            )
     
    )
    Erreur
    Je ne sais pu quoi faire pour résoudre ce problème, avez vous des solutions ?
    Windev 23 - SQL SERVER - PHP
    Play : TFT - Jeux indé

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 91
    Points : 133
    Points
    133
    Par défaut
    Bonjour,

    Tiens, je pensais que move_uploaded_file ne marchait qu'en méthode post et pas get.
    Si tu passes en post, tu crées avec un fopen(wb) et un fwrite.

  3. #3
    Membre confirmé Avatar de Nhaps
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 350
    Points : 603
    Points
    603
    Par défaut
    Merci pour ta réponse.

    Citation Envoyé par Beeze Voir le message
    Bonjour,

    Tiens, je pensais que move_uploaded_file ne marchait qu'en méthode post et pas get.
    Si tu passes en post, tu crées avec un fopen(wb) et un fwrite.
    Je suis en post là vu que j'envoie un message avec la fonction HttpRequete donc la fonction php move_uploaded_file est pertinente ici.

    Doc de HttpRequete
    Deux types de requêtes sont gérés : POST et GET. Les requêtes de type GET sont automatiques. Si le "Message à envoyer" n'est pas précisé, il s'agit d'une requête GET (voir syntaxe)
    Windev 23 - SQL SERVER - PHP
    Play : TFT - Jeux indé

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 91
    Points : 133
    Points
    133
    Par défaut
    Oups désolé !

    j'étais justement en train de faire le même style de code.
    Mais j encode en base64 lors de l'envoi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    // Paramètres Post
    sParametrePost est une chaîne UNICODE
    sParametrePost = ChaîneConstruit("Image=%1&Files=%2", ...
    Nommage, URLEncode(DataToSend)+RC)
     
     
    SI HTTPRequest(gsrequesturl , "", "", sParametrePost) THEN
    	sResponse= HTTPGetResult(httpRésultat)
    	//	Info(AnsiVersUnicode(HTTPDonneRésultat))
    SINON 
    	sResponse =  HTTPGetResult(httpHeader) 
     
    FIN
    et
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $data=$_POST['Image'];
    $files=$_POST['Files'];
    	function base64_to_jpeg($data=null,$image_target_name) {
    	 if($data !=null){
    		$data_target = base64_decode($data);  
    		$image_target = fopen($image_target_name, 'wb');
     
    		}
    		return false;
    	}
    Par contre, j'ai testé comme ça, moins de restriction sur l'enregistrement des images dans les dossiers

  5. #5
    Membre confirmé Avatar de Nhaps
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 350
    Points : 603
    Points
    603
    Par défaut
    Bon au fait je suis un boulet

    Dans mon script PHP, il suffit de faire

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $uploadfile = "./Image/" . urldecode($_FILES['filename']['name']);

    Voilà...
    Windev 23 - SQL SERVER - PHP
    Play : TFT - Jeux indé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Upload] Upload images php
    Par lls dans le forum Langage
    Réponses: 15
    Dernier message: 19/07/2007, 18h23
  2. [Upload] Script upload images
    Par Myriamrv dans le forum Langage
    Réponses: 14
    Dernier message: 07/12/2005, 18h24
  3. [MySQL] pb upload image et update table
    Par digger dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 12/11/2005, 14h09
  4. Réponses: 1
    Dernier message: 31/10/2005, 09h33
  5. [Upload] Probleme upload images
    Par yveslens dans le forum Langage
    Réponses: 6
    Dernier message: 22/08/2005, 09h42

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