Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/11/2007, 10h44   #1
Invité de passage
 
Inscription : février 2005
Messages : 4
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 4
Points : 0
Points : 0
Par défaut [FTP] Besoin d'aide php ftp_put

Bonjour à tous,

Je tente de réaliser une page pour transférer des fichiers images sur mon serveur ftp. Voici le code
Code :
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
////// TRANSFERT EN FTP //////////
/*
VARIABLES : 
$chemin = chemin où je veux placer le fichier
$fichier = chemin du fichier sur mon ordinateur
*/
error_reporting  (FATAL + ERROR + WARNING);
set_time_limit ( 500 );
ini_set('max_execution_time','300');
 
// CREATION DE LA CONNEXION FTP
$ftp_server = "www.xxx.fr";
$connection = ftp_connect($ftp_server); 
 
// ATHENTIFICATION AVEC LE NOM D'UTILISATEUR ET LE MOT DE PASSE
$ftp_user_name="mon utilisateur";
$ftp_user_pass = "mon mot de passe";
 
// VERIFICATION DES IDENTIFIANTS
$login_result = ftp_login($connection, $ftp_user_name, $ftp_user_pass); 
 
// VERIFICATION DE LA CONNEXION
if ((!$connection) || (!$login_result)) { 
// Si la connexion a échoué, affichage d'un message d'erreur
echo "La connexion FTP a échoué! <br>"; 
die; 
}
else 
{ 
// Sinon, message de réussite de connexion
echo "<br>Connecté à $ftp_server"; 
 
// ACCES AU CHEMIN DESIRE POUR TRANSFERT DE FICHIER
// Test si le chemin est existant
if (ftp_chdir($connection,$chemin) == true)
{	
// si le chemin existe, annonce à l'utilisateur
print("<br>$chemin existant<br>Transfert vers ce chemin en cours...<br>");
}
else
{
// Si le chemin n'est pas présent, création du répertoire
if (ftp_mkdir($connection,$chemin))
{
print ("<br>Création du répertoire $chemin effectué<br>Transfert en cours...");
}
}
// TRANSFERT DU FICHIER
ftp_chdir($connection,$chemin);
$upload = ftp_put($connection, $chemin, $fichier, FTP_BINARY); 
 
// TEST DE LA REUSSITE DU TRANSFERT
if (!$upload) 
{ 
echo "<BR>Le téléchargement Ftp a échoué!"; 
}
else
{ 
echo "<br>Le Transfert de $source_file sur $ftp_server a réussi"; 
} 
} 
 
// FERMETURE DE LA CONNEXION FTP 
ftp_quit($connection);
Et voici la réponse suite à la validation de mon formulaire :
Citation:
Connecté à www.xxxxx.fr
/Site_nouvelle_version3/photos_actu/ existant
Transfert vers ce chemin en cours...

Warning: ftp_put(): error opening C:\\logo.jpg in /tpc/mnt/filer/web/clients/s/stadelav/Administration_Site/actualite/ajout_actu.php4 on line 54

Le téléchargement Ftp a échoué!
Est-ce que quelqu'un aurait une solution pour me sortir de ce problème car après plusieurs recherches sur le net, impossible de trouver la solution.

Merci d'avance,

FAB53
fab53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 11h57   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Le serveur où est exécuté le script ne peut envoyer (ftp_put) que ses propres fichiers (ceux dont il a directement accès), certainement pas ceux du client ainsi ! Pour garder la voie dans laquelle vous vous êtes orienté il faudrait d'abord que le client envoi au serveur HTTP le fichier par upload puis que ce dernier le retransmette au serveur FTP (ça double donc le transfert et le temps d'exécution).
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 15h41   #3
Invité de passage
 
Inscription : février 2005
Messages : 4
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 4
Points : 0
Points : 0
Par défaut aide

Citation:
Envoyé par julp Voir le message
Le serveur où est exécuté le script ne peut envoyer (ftp_put) que ses propres fichiers (ceux dont il a directement accès), certainement pas ceux du client ainsi ! Pour garder la voie dans laquelle vous êtes orienté il faudrait d'abord que le client envoi au serveur HTTP le fichier par upload puis que ce dernier le retransmette au serveur FTP (ça double donc le transfert et le temps d'exécution).
re et merci de ta réponse.

J'ai bien compris ce que tu viens de m'expliquer mais dnas le code, je ne m'en sors toujours pas.
Ce que j'ai compris, c'est qu'il fallait qu'avec le code, je récupère physiquement mon fichier pour le mettre dnas un fichier temporaire pour ensuite le mettre sur le serveur.
Mais, je n'arrive pas à le traduire en langage.

Fab 53
fab53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 16h47   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par fab53
Ce que j'ai compris, c'est qu'il fallait qu'avec le code, je récupère physiquement mon fichier pour le mettre dnas un fichier temporaire pour ensuite le mettre sur le serveur.
C'est géré par le serveur tout ça (si vous avez suivi le tutoriel indiqué plus haut) : vous obtenez directement, en PHP, le nom (chemin complet en fait) du fichier temporaire créé via la variable $_FILES['nom_du_champ_file']['tmp_name'].

(Vous serez soumis aux restrictions des scripts PHP en terme de taille limite des fichiers uploadés - 2 Mo par défaut - et en temps d'exécution - 30 secondes par défaut).

Citation:
Envoyé par fab53
Mais, je n'arrive pas à le traduire en langage.
Tout ce qui change pour vous c'est plus ou moins la partie move_uploaded_file puisqu'à ce moment-là ce qui vous intéresse c'est de le renvoyer sur le serveur FTP (donc connexion au serveur FTP puis transfert par ftp_put) et non le "copier" sur le serveur HTTP.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h11.


 
 
 
 
Partenaires

Hébergement Web