Aller au contenu

script php upload de fichier par ftp


bidibulle

Sujets conseillés

Bonjour,

je souhaiterais envoyé depuis une application web (bien entendu) des fichiers locaux vers mon serveur web, j'ai fais des recherches et des tests pour le moment je fais juste un instruction après avoir cliquer sur un bouton, à savoir que le fichier serais crée par cette même application via les fonction fopen, fwrite,etc,

ci-dessous mon code source :

<?php
$ftp_server = "ftp.domaine.com";
$ftp_user = "user";
$ftp_pass = "pass";
$remote_file = "/www/rep/rep_destination";
$file = "C:/rep/rep/rep/rep/rep/fichier.php";

if(isset($_POST['SendFTP'])){
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");
// Tentative d'identification
if (ftp_login($conn_id, $ftp_user, $ftp_pass)) {
$msg = "Connecté en tant que $ftp_user@$ftp_server\n";
}else{
$msg = "Connexion impossible en tant que $ftp_user\n";
}
// Charge un fichier
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {// ligne 17
$msg = "Le fichier $file a été envoyé avec succès\n";
}else{
$msg = "Il y a eu un problème lors du chargement du fichier $file\n";
}
ftp_close($conn_id);
}
?>
<form action="" method="post" name="SendFileFTP" id="SendFileFTP">
<input name="SendFTP" type="submit" value="Send To FTP" id="SendFTP" />
</form>

<form action="" method="post" name="SendFileFTP" id="SendFileFTP">
<input name="SendFTP" type="submit" value="Send To FTP" id="SendFTP" />
</form>

il me donne l'erreur suivante :

Warning: ftp_put() [function.ftp-put]: Impossible d'ouvrir ce fichier: Is a directory in C:\Program Files\EasyPHP 3.0\www\cms\Test\ftp.php on line 17

Pouvez-vous me dire où est mon erreur, ou éventuellement me donner un autre solution.

merci de votre aide

Lien vers le commentaire
Partager sur d’autres sites

Tu as l'erreur dans le message... "Is a directory" !

Tu essayes d'envoyer un répertoire, et pas un fichier, voir C:\Program Files\EasyPHP 3.0\www\cms\Test\ftp.php ligne 17

Lien vers le commentaire
Partager sur d’autres sites

Oui oki mais comment je fais pour lui indique où est mon fichier parce à ce niveau là le fichier existe dans un dossier bien précis sur mon disque local

Est-ce que le fichier à envoyé via FTP doit ce trouver dans le même dossier que mon script php? ou bien cela n'a pas d'importance?

p.s attn capitaine torche : je tacherais de ne pas l'oublié pour la prochaine fois désolé

Lien vers le commentaire
Partager sur d’autres sites

Si tu utilises l'adresse absolue du fichier, tu ne dois pas te poser cette question. D'ailleurs, dans ton code, c'est une adresse absolue ($file = "C:/rep/rep/rep/rep/rep/fichier.php";), non ? Et c'est vrai que ce nom de fichier ne semble pas être un nom de répertoire. Il doit y avoir quelque chose qui m'échappe...

Jean-Luc

Lien vers le commentaire
Partager sur d’autres sites

Si tu utilises l'adresse absolue du fichier, tu ne dois pas te poser cette question. D'ailleurs, dans ton code, c'est une adresse absolue ($file = "C:/rep/rep/rep/rep/rep/fichier.php";), non ? Et c'est vrai que ce nom de fichier ne semble pas être un nom de répertoire. Il doit y avoir quelque chose qui m'échappe...

Oui en fait mon script php se trouve dans : Racine/X/Y/script.php

que j'inclus dans un fichier qui lui se trouve dans le dossier X

les fichiers qui devront être envoyé se trouverons dans : Racine/Z/Fichiers.htm

je ne penses pas l'include puisse posé un problème?

Est-ce qu'il ne pourrais pas y avoir un problème de communication entre mon serveur et les paramètre du serveur de mon hébergeur (phpnet)?

Lien vers le commentaire
Partager sur d’autres sites

Je pense qu'il s'agit du fichier de destination qui pose problème: il faut que tu donnes le chemin complet du fichier (nom du fichier compris), pas juste le répertoire dans lequel tu veux le mettre.

Non?

Jacques.

Lien vers le commentaire
Partager sur d’autres sites

Posté (modifié)

Je viens de faire un test avec le répertoire complet nom de fichier inclus et c'est ok!!! ci-dessous le code complet et correct

<?php
$ftp_server = "ftp.domaine.com";
$ftp_user = "user";
$ftp_pass = "pass";
$remote_file = "/www/répertoire_site/dossier_destination/nom_fichier.htm"; //dossier destination (serveur web)
$file = "../dossier/nom_fichier.htm";//chemin du fichier ( local )

if(isset($_POST['SendFTP'])){
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");
// Tentative d'identification
if (ftp_login($conn_id, $ftp_user, $ftp_pass)) {
$msg = "Connecté en tant que $ftp_user@$ftp_server\n";
}else{
$msg = "Connexion impossible en tant que $ftp_user\n";
}
// Charge un fichier
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {// ligne 17
$msg = "Le fichier $file a été envoyé avec succès\n";
}else{
$msg = "Il y a eu un problème lors du chargement du fichier $file\n";
}
ftp_close($conn_id);
}
?>

merci de votre aide

Modifié par bidibulle
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...