Version complète: sur le forum Webmaster Hub : upload par ftp depuis un formulaire
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
gto55
Bonjour,

Je teste un upload par ftp d'une image depuis un formulaire mais il ne marche pas.

Est-ce que qqn saurait pourquoi ?

Le server est un server dédié ovh.
Merci smile.gif

CODE
<form name="form" action="test.php" method="post" enctype="multipart/form-data">
        <table>
          <tr>
            <td width="200" valign="top">Image du médias</td>
            <td><input name="image" type="file" class="champ" id="image" /></td>
          </tr>
</form>


CODE

$imagePreviewClean = addslashes($_FILES['image']["name"]);

$file = $imagePreviewClean;
$remote_file = 'www/ledossier/images/medias/'.$date.'/images/'.$imagePreviewClean;

// Mise en place d'une connexion basique
$conn_id = ftp_connect("adresse ftp du server ");
// authentification avec nom de compte et mot de passe
$login ='le login';
$mdp = 'le mot de passe ';

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $login, $mdp);

// Charge un fichier
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
echo "Le fichier $file a té chargé avec succès\n";
} else {
echo "Il y a eu un problème lors du chargement du fichier $file\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
Portekoi
As tu une erreur? Si oui laquelle?
gto55
j'ai ce message:
"Il y a eu un problème lors du chargement du fichier 'nom du fichier que je veux uploader par ftp'";

Je n'ai pas d'autres indications sad.gif
Dan
As-tu essayé en changeant le mode (actif/passif) ?
Si tu es derrière un firewall, ça peut être la raison smile.gif

Regarde la fonction :
bool ftp_pasv ( resource ftp_stream, bool pasv )

Dan
gto55
je vais essayer.

Merci smile.gif
gto55
ça ne marche pas non plus, est-ce qu'il faut envoyer en mode binary ou ascii ?

Ce serait pour une seule image.


Est-ce que qqn aurait une autre exemple de transfert par ftp ?
Merci tongue.gif
NorSeb
Bonjour,

Dans ton code tu ne teste pas si tu es connecté. A mon humble avis, il faudrait commencer par ca wink.gif
Teste le retour des fontions ftp_connect() et ftp_login()

http://fr.php.net/manual/fr/function.ftp-connect.php
http://fr.php.net/manual/fr/function.ftp-login.php
gto55
je n'ai pas mis tout le code, je teste bien si la connextion s'est effectué.

Voilà le code en entier:
Je crée au préalable un dossier par ftp où l'image sera uploadée avec cette fonction:
CODE
$date = $_POST["date"];
$pathImages =  'www/lesite/images/medias/'.$date.'/images/';
ftp_mkdir($conn_id,$pathImages);
$chmod_cmd3='CHMOD 0777 '.$pathImages;
$chmod3=ftp_site($conn_id, $chmod_cmd3);




CODE
<form name="form" action="test.php" method="post" enctype="multipart/form-data">
        <table>
          <tr>
            <td width="200" valign="top">Image du médias</td>
            <td><input name="image" type="file" class="champ" id="image" /></td>
          </tr>
</form>


CODE
// création de la connexion
$conn_id = ftp_connect("l'adresse du server ovh");
// authentification avec nom de compte et mot de passe
$login = 'le login ';
$mdp = 'le mot de passe;
$login_result = ftp_login($conn_id, $login, $mdp);
ftp_pasv($conn_id, TRUE);
// vérification de la connexion
if ((!$conn_id) || (!$login_result)) {
        echo "La connexion FTP a échoué!";
//        echo "Tentative de connexion à $ftp_server avec $ftp_user_name";
        die;
    } else {
        echo "Connecté sur serveur distant<br>";
    }


$imagePreviewClean = addslashes($_FILES['image']["name"]);

$file = $imagePreviewClean;
$remote_file = 'www/ledossier/images/medias/'.$date.'/images/'.$imagePreviewClean;

// Mise en place d'une connexion basique
$conn_id = ftp_connect("adresse ftp du server ");
// authentification avec nom de compte et mot de passe
$login ='le login';
$mdp = 'le mot de passe ';

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $login, $mdp);

// Charge un fichier
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
echo "Le fichier $file a té chargé avec succès\n";
} else {
echo "Il y a eu un problème lors du chargement du fichier $file\n";
}

// Fermeture de la connexion
ftp_close($conn_id);



Il me dit que la connection s'est bien éffectuée mais que l'upload non wacko.gif
NorSeb
Il y a un point que je voudrais eclaircir smile.gif

Quel est ton objectif exactement ? Envoyer ton fichier sur ton serveur ?

Si c'est le cas, le formulaire le fait déja... inutile d'utiliser du ftp.
gto55
En fait je dois envoyer une image dans un dossier image et un flv dans un dossier flv, comme les flv font plus de 2mo je ne peux ls envoyer pr http et je dois donc les envoyer par ftp.

Sauf que je ne sais pas pourquoi, lorsque je cree un dossier avec la fonction mkdir il m'est impossible d'uploader quoi que ce soit dans le dossier flv;

Il faut donc que je crée le dossier par ftp avec un chmod 777.

Mais si je fais ça, il m'est impossible d'envoyer l'image par formulaire http.

Voilà en gros le problême.
gto55
Ca ne marche toujours pas :/
VdK
Ceci explique sans doute le pourquoi de ton problème :
OVH
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.