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

Bibliothèques et frameworks PHP Discussion :

[cURL] et hébergeur online comment faire un upload ?


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 496
    Par défaut [cURL] et hébergeur online comment faire un upload ?
    Bonjour,

    Un de mes clients à besoin d'uploader des fichiers par le bias de son BACKOFFICE.

    Mon client est chez l'hébéergeur ONLINE.

    Ce dernier limite l'upload à 2 méga maxi (et encore ça passe une fois sur 5).

    La bibliothèque FTP est désactivée.

    A force de chercher, j'ai fini par trouver sur la FAQ d'ONLINE que pour l'upload, il fallait utiliser le module CURL.

    Après moult recherche, je tombe toujours sur le même résultat ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    $ch = curl_init('http://www.developpez.com');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_NOBODY, FALSE);
    $response = curl_exec($ch);
    curl_close($ch);
    echo $response;
    ?>
    ... qui m'affiche la page http://www.developpez.com

    Quelqu'un pourrait-il m'indiquer comment faire un script d'upload en utilisant le module CURL ?

    Merci d'avance à ceux qui auront quelques instants à me consacrer

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Je dois avoir ça en stock :
    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
    function curl_ftp_put($url, $nom_local, $ascii_mode = FALSE)
    {
        $ret = FALSE;
     
        if (is_file($nom_local)) {
            $fp = fopen($nom_local, 'r');
            $ch = curl_init($url);
            curl_setopt($ch, CURLOPT_INFILE, $fp);
            curl_setopt($ch, CURLOPT_INFILESIZE, filesize($nom_local));
            curl_setopt($ch, CURLOPT_UPLOAD, TRUE);
            if ($ascii_mode) {
                curl_setopt($ch, CURLOPT_TRANSFERTEXT, TRUE);
            }
            $ret = curl_exec($ch);
            curl_close($ch);
            fclose($fp);
        }
     
        return $ret;
    }
     
    if (!curl_ftp_put('ftp://login:mot_de_passe@serveur/mon_fichier.txt', 'mon_fichier.txt')) {
        die("Le fichier n'a pu être uploadé sur le serveur");
    }

  3. #3
    Membre éclairé Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 496
    Par défaut
    Merci julp pour ta (rapide) réponse.

    Toutefois, quelque chose m'échappe.

    J'ai deux variables :
    1. La source du fichier à uploader : C:\Documents and Settings\mon_fichier.pdf (peut être n'est-il pas possible d'uploder du client vers le serveur ?)
    2. La destination : ftp://login:mot_de_passe@serveur/mon_fichier.pdf


    Voici ton code avec mes variables :
    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
     
    <?php
    function curl_ftp_put($url, $nom_local, $ascii_mode = FALSE) {  
      // Ta fonction ....
    }
     
    if (!curl_ftp_put($url, $nom_local)) {  
    	die("Le fichier n'a pu être uploadé sur le serveur"); 
    }
     
     
    $url = 'ftp://login:mot_de_passe@serveur/mon_fichier.pdf';
    $nom_local = 'C:\Documents and Settings\mon_fichier.pdf';
     
    echo curl_ftp_put($url, $nom_local, $ascii_mode = FALSE );
    ?>
    J'ai invariablement le message : Le fichier n'a pu être uploadé sur le serveur

    Il y a donc quelque part quelque chose que je n'ai pas compris.

    Peux tu m'indiquer mon erreur ?

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Votre fichier est uploadé ou non ? Et comme ceci est-ce mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    function curl_ftp_put($url, $nom_local, $ascii_mode = FALSE) {  
      // Ta fonction ....
    }
     
    $url = 'ftp://login:mot_de_passe@serveur/mon_fichier.pdf';
    $nom_local = 'C:\Documents and Settings\mon_fichier.pdf';
    if (!curl_ftp_put($url, $nom_local)) {  
    	die("Le fichier n'a pu être uploadé sur le serveur"); 
    }
    ?>

  5. #5
    Membre éclairé Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 496
    Par défaut
    Le fichier n'est pas uploader.

    Et le code que tu m'as envoyé ni change rien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    function curl_ftp_put($url, $nom_local, $ascii_mode = FALSE) {  
      // Ta fonction ....
    }
     
    $url = 'ftp://login:mot_de_passe@serveur/mon_fichier.pdf';
    $nom_local = 'C:\Documents and Settings\mon_fichier.pdf';
     
    if (!curl_ftp_put($url, $nom_local)) {  
    	die("Le fichier n'a pu être uploadé sur le serveur"); 
    }
    ?>
    En fait, tu as juste mis les variables avant la condition .....

    Petite précision, entre les variable et la condition, j'ai cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo curl_ftp_put($url, $nom_local, $ascii_mode = FALSE );
    Ce qui donne (désolé pour la répétition du code mais c'est très clair comme ça) :

    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
     
    <?php
    function curl_ftp_put($url, $nom_local, $ascii_mode = FALSE) {  
     
    	$ret = FALSE;   
     
    	if (is_file($nom_local)) {  
    		$fp = fopen($nom_local, 'r'); 
    		$ch = curl_init($url); 
    		curl_setopt($ch, CURLOPT_INFILE, $fp); 
    		curl_setopt($ch, CURLOPT_INFILESIZE, filesize($nom_local)); 
    		curl_setopt($ch, CURLOPT_UPLOAD, TRUE); 
     
    			if ($ascii_mode) {  
    				curl_setopt($ch, CURLOPT_TRANSFERTEXT, TRUE); } 
    				$ret = curl_exec($ch); curl_close($ch); fclose($fp); 
    			}  
     
    	return $ret; 
    }
     
    $url = 'ftp://login:mot_de_passe@serveur/mon_fichier.pdf';
    $nom_local = 'C:\Documents and Settings\mon_fichier.pdf';
     
    echo curl_ftp_put($url, $nom_local, $ascii_mode = FALSE );
     
     
    if (!curl_ftp_put($url, $nom_local)) {  
    	die("Le fichier n'a pu être uploadé sur le serveur"); 
    }
    ?>
    1. J'ai testé l'url ftp dans mon navigateur et je me connecte bien à mon serveur FTP.
    2. Bien sûr, mon ficher source est bien à cet emplacement :C:\Documents and Settings\mon_fichier.pdf


    Résultat : Le fichier n'est pas uploader et j'ai le message d'erreur.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    J'ai fait mes tests sur un compte Free mais sur de petits fichiers texte.

    Pourriez-vous ajouter :
    avant l'appel à curl_close. Que dit-il ?

Discussions similaires

  1. [Doctrine] Comment faire un Upload multiple
    Par Khalezis dans le forum ORM
    Réponses: 5
    Dernier message: 26/03/2012, 10h35
  2. Comment faire un upload ?
    Par narutoe dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 06/06/2011, 12h26
  3. Réponses: 2
    Dernier message: 04/06/2010, 03h56
  4. Réponses: 2
    Dernier message: 03/07/2007, 17h04
  5. Comment faire une upload en asp.net
    Par michel16 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 09/05/2007, 09h40

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