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

Langage PHP Discussion :

upload fichier sur serveur distant [PHP 5.4]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Points : 6
    Points
    6
    Par défaut upload fichier sur serveur distant
    Bonjour,

    Je dois uploader un fichier sur un serveur distant, voici ce que je souhaite faire :

    - récupération des données utilisateur,
    - création d'un fichier .json,
    - upload du fichier au serveur distant.

    Cela me donne comme erreur suivant :
    Can't open that file: No such file or directory

    alors que le fichier a bien étgé crée.

    Voici la methode qui crée et upload le fichier
    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
    public function upload_file(){
    		//creation du fichier
    		$f = fopen(ROOT.DS.$this->dirname.DS.$this->filename,"w+");
    			fwrite($f,$this->informations_a_envoyer);
    		fclose($f);
    		//direction des fichiers
    		$local_file 	= ROOT.DS.$this->dirname.DS.$this->filename ;
    		$remote_file 	= DS.$this->dirname.DS.$this->filename ;
     
    		$ftp = new ftp();
    		if($ftp->connect()){
    			echo 'connecter';
    		}else{
    			echo 'non connecter' ;
    		}
    		$ftp->upload($local_file, $remote_file);
     
    	}
    Voici la methode qui permetla connection au serveur de la class ftp
    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
    public function connect($isPassive = true){
    		$server		= config::$config['ftp_connect'] ;
    		$ftpUser	= config::$config['login'];
    		$ftpPassword= config::$config['password'];
    		$this->connectionId = ftp_connect($server);
    		$loginResult = ftp_login($this->connectionId, $ftpUser, $ftpPassword);
    		ftp_pasv($this->connectionId, $isPassive);
    		if ((!$this->connectionId) || (!$loginResult)) {
    			$this->logMessage('FTP connection has failed!');
    			$this->logMessage('Attempted to connect to ' . $server . ' for user ' . $ftpUser, true);
    			return false;
    		} else {
    			$this->logMessage('Connected to ' . $server . ', for user ' . $ftpUser);
    			$this->loginOk = true;
    			return true;
    		}
    	}
    Voici la methode qui permet uploader le fichier de la class ftp
    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
    public function upload($fileFrom, $fileTo){
    		$asciiArray = array('txt', 'csv','json');
    		$tab = explode('.', $fileFrom);
    		$extension = end($tab);
    		$mode = (in_array($extension, $asciiArray)) ?FTP_ASCII    :FTP_BINARY;//1:0;
     
     
    		$upload = ftp_put($this->connectionId, $fileTo, $fileFrom, $mode);
    		echo '<p>upload : '.$upload.'</p>' ;
    		if (!$upload) {
    			$this->logMessage('FTP upload has failed!');
    			return false;
    		} else {
    			$this->logMessage('Uploaded "' . $fileFrom . '" as "' . $fileTo);
    			return true;
    		}
    	}
    En espérant que quelqu'un pourra m'aidé.
    Merci

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Salut,

    Je sais pas si j'ai bien compris ton besoin. Si tu veux télécharger le fichier depuis un formulaire, c'est pas ftp qu'il faut utiliser mais une méthode http.
    Pour ton problème il semble que "ROOT.DS.$this->dirname.DS.$this->filename" ne soit pas une adresse valide. Fais-là afficher pour la contrôler et comprendre ce qui se passe.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Salut,
    non c'est un fichier que je génère en php.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Et as-tu contôlé ce que donne la chaine "ROOT.DS.$this->dirname.DS.$this->filename" car apparemment c'est cette ligne qui renvoie cette erreur, non ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    elle renvoie : /home/nom_d_hebergement/www/REQUETES_CLIENTS/1_81.67.79.167_123456789.json

    Voici comment sont composés mes dossiers (concernant mes dossiers, ils ont tous un chmod à 705 par défaut(hébergement ovh)) :

    SERVEUR 1
    DOSSIER "CORE"
    - la class controller( ou se trouve la méthode upload_file()),
    - la class ftp (qui permet uploader un fichier sur mon deuxième serveur)

    DOSSIER "REQUETES_CLIENTS"
    - où sont enregistrés les fichiers à uploader dans le second serveur

    SERVEUR 2
    DOSSIER "REQUETES_CLIENTS"
    - où sont enregistrés les fichiers envoyés depuis le premier serveur

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Salut,

    Pour pouvoir utiliser fopen vers un autre serveur il y a des configurations serveur à prendre en compte. Regarde la doc notamment open_basedir et allow_url_fopen.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    J'ai trouvé la solution, cela venez du de la direction des fichiers tout simplement.

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

Discussions similaires

  1. [PHP5.x] Uploader fichier sur serveur distant
    Par Tyra3l dans le forum Langage
    Réponses: 6
    Dernier message: 30/03/2012, 08h31
  2. Réponses: 2
    Dernier message: 18/04/2007, 15h44
  3. Réponses: 3
    Dernier message: 01/03/2007, 10h18
  4. [FTP] Accès fichiers sur serveur distant
    Par Mystic eyes dans le forum Langage
    Réponses: 23
    Dernier message: 07/07/2006, 17h06
  5. existence d'un fichier sur serveur distant
    Par Fabouney dans le forum Programmation et administration système
    Réponses: 3
    Dernier message: 17/01/2006, 10h18

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