louna_ha
Messages postés27Date d'inscriptionmardi 4 avril 2006StatutMembreDernière intervention 2 avril 2007
-
4 juil. 2006 à 11:25
cs_chamallow
Messages postés363Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention29 janvier 2007
-
4 juil. 2006 à 16:36
Salut tous le monde voila j'ai réaliser le code suivant qui permet de charger des fichiers via le protocole FTP. Et voila le message d'erreur afficher : "Connexion réussie au serveur ftpLe chargement FTP a échoué!"
les fichier charger doivent être stocker sous le dossier "echanges" c'est pour cette raison que j'ai spécifier ce dossier comme fichier local est ce c'est possible?
Aider Moi svp!!!
Voila le code :
<?php
// Connexion et sélection de la base
$link = mysql_connect("localhost", "root", "")
or die("Impossible de se connecter");
mysql_select_db("bd") or die("Could not select database");
// Mise en place d'une connexion basique*
$ftp_server='';
$ftp_user_name='';
$ftp_user_pass='';
$source_file=print_r($_FILE['source_file_mail']);
$conn_id = ftp_connect($ftp_server);
// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// Vérification de la connexion
if ((!$conn_id) || (!$login_result)) {
echo "La connexion FTP a échoué !";
echo "Tentative de connexion au serveur ftp ";
exit;
} else {
echo "Connexion réussie au serveur ftp";
}
$destination_file="../echanges";
// Chargement d'un fichier
$upload = ftp_put($conn_id, $source_file, $destination_file, FTP_BINARY);
// Vérification du status du chargement
if (!$upload) {
echo "Le chargement FTP a échoué!";
} else {
echo "Chargement de $source_file vers le serveur ftp en tant que $destination_file";
}
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 4 juil. 2006 à 12:07
Salut!
Tu as fait un echo des chemins $source_file et $destination_file pour vérifier que ça correspond bien avec ce que tu veux?
@++
R@f
www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 4 juil. 2006 à 13:06
Salut!
Quel est t il dans le formulaire? Et celui affiché? Contient-il des caractères spéciaux? ...?
Regarde sa récupération et vérifier que la variable ne transite pas par certaines fonctions qui pourraient al modifier... :)
@++
R@f
www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Je crois que c'est d'abord la destination et après la source dans les paramètres. Et dans la source, comme dans la destination, il faut indiquer le nom du fichier, donc pas que le répertoire final.
Essaye en tout cas d'inverser la source et la destination
louna_ha
Messages postés27Date d'inscriptionmardi 4 avril 2006StatutMembreDernière intervention 2 avril 2007 4 juil. 2006 à 15:23
c encore la meme erreur:
Array ( [name] => essai22.txt [type] => text/plain [tmp_name] => d:\www\php\htdocs\tmp\php24DF.tmp [error] => 0 [size] => 0 ) Connexion réussie au serveur ftp../echanges1
Warning: ftp_put(): Unable to access 1 in d:\www\arestechnologies.net\htdocs\PageAccesClient\valid_maill.php on line 44
Le chargement FTP a échoué!
cs_chamallow
Messages postés363Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention29 janvier 20071 4 juil. 2006 à 16:04
Bon je sais pas trop ce que c'est que ce 1, mais comment il va savoir où aller chercher le fichier à uploader? J'ai du zappé un truc là.
Perso, je sais que avant de faire ftp_put, moi j'utilise move_uploaded_file ou copy si ça marche pas pour le déplacer dans le dossier temporaire, et ensuite je fais ftp_put sur le fichier temp jusqu'au dossier final .
louna_ha
Messages postés27Date d'inscriptionmardi 4 avril 2006StatutMembreDernière intervention 2 avril 2007 4 juil. 2006 à 16:08
Merci bien chamallow de ta patience et de ton aide.
je vais essayer de faire ce ke tu ma proposer.
est ce je peut te consulter si je trouve une autre déficulté!!!!!!!!!
louna_ha
Messages postés27Date d'inscriptionmardi 4 avril 2006StatutMembreDernière intervention 2 avril 2007 4 juil. 2006 à 16:14
oui stp je veux voir un exemple; parce que je me suis rendu compte que j'ai déja utiliser cette fonction avant d'établir mon ftp_put comme suit:
if(is_uploaded_file(isset($_FILES['fil']['tmp_name'])))
{
//on stocke le nom du fichier dans une variable
$compte = $_FILES['fil']['name'];
echo "Un fichier a été envoyé, nous pouvons le traiter
";
//La ligne ci dessous écrit le nom du fichier!!!
echo $_FILES['fil']['name'];
//Le fichier va être copié dans le dossier "echanges" sous le nom qu'il portait sur l'ordi de départ
move_uploaded_file($_FILES['fil']['tmp_name'],'echanges/');
}
cs_chamallow
Messages postés363Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention29 janvier 20071 4 juil. 2006 à 16:29
$deplacement_Tmp = false; //Booléen destiné à savoir si l'upload sur le dossier temporaire s'est bien passé
$deplacement_Final = false;//Booléen pour savoir si le transfert du dossier temporaire au dossier final s'est bien déroulé
if($_FILES[$nomFichier]['error'])
{
//En cas d'erreur retournée lors de l'upload, on signale quelle est l'erreur :
switch ($_FILES[$nomFichier]['error'])
{
case UPLOAD_ERR_INI_SIZE:
echo "La taille du fichier ".$nomFichier." à uploader dépasse la valeur maximale autorisé.";
break;
case UPLOAD_ERR_PARTIAL:
echo "Le fichier ".$nomFichier." n'a été que partiellement uploadé.";
break;
case UPLOAD_ERR_NO_FILE :
echo "Aucun fichier ".$nomFichier." n\'a été uploadé.";
break;
}
}
else
{
/* S'il n'y a eu aucune erreur lors de l'upload : */
if(!@move_uploaded_file($_FILES[$nomFichier]['tmp_name'],$ftp_tmp.$_FILES[$nomFichier]['name']))
{
//S'il y a erreur lors du déplacement du fichier dans le dossier temporaire, on essaye de copier le fichier :
if(!@copy($_FILES[$nomFichier]['tmp_name'],$ftp_tmp.$_FILES[$nomFichier]['name']))
{
//Si la copie a échoué, on le signale à l'utilisateur :
$deplacement_tmp = true;
echo ("Le fichier ".$nomFichier." n'a pas pu être déplacé vers le répertoire temporaire.");
}
}
if(!$deplacement_tmp)
{
/* Si le fichier se trouve bien dans le répertoire temporaire : */
//On transfère le fichier du dossier temporaire au dossier final contenant toutes les images :
$deplacement_Final = @ftp_put($retourConn, $repFinal.$_FILES[$nomFichier]['name'],$ftp_tmp.$_FILES[$nomFichier]['name'], FTP_BINARY);
if(!$deplacement_Final)
{
//Si ce dernier transfert a échoué, on prévient l'utilisateur :
echo ("Le fichier ".$nomFichier." n'a pas pu être transféré vers le serveur.");
}
//Suppression du fichier temporaire dans le répertoire tmp d'upload :
if(!unlink($ftp_tmp.$_FILES[$nomFichier]['name']))
{
echo ("Le fichier ".$nomFichier." uploadé temporairement n'a pas été effacé du dossier temporaire.");
}
}
}
alors $nomFichier, c'est le nom du ficheir récupéré dans le champ Input : $nomFichier = $_FILES['fil']['name']
$ftp_tmp c'est le chemin du répertoire pour l'upload temporaire (un dossier temp)
$repFinal c'est le chemin du dossier de destination finale
Bon j'espère y'a pas de bêtises, parce que j'avais fait une fonction à partir de là plus compliquée qui répondait à mes besoins, donc j'ai essayé de l'épurer rapidement pour toi !