upload chez free

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : upload chez free

par Spols » 26 nov. 2006, 20:50

as tu deja créer le dossier??

par pfrib » 26 nov. 2006, 18:02

Merci Cyrano, :D
J'ai essyé avec la methode HTTP, j'ai presque pas modifié la source de phpfrance :
if(isset($_FILES['fichier']))
{
$dest_dossier = '/upload/';
$dest_fichier = basename($_FILES['fichier']['name']);
move_uploaded_file($_FILES['fichier']['tmp_name'], $dest_dossier . $dest_fichier);
}
mais j'ai une erreur :
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to access /upload/fichier.jpg in /mnt/139/sdb/0/3/serveur/upload.php on line 13

par Cyrano » 26 nov. 2006, 17:44

si tes fichiers n'excèdent pas 2Mo, tu peux utiliser l'upload HTTP. Il y a un tuto sur le site de PHPFrance sur le sujet.

par pfrib » 26 nov. 2006, 17:41

ah ! je ne savais pas que free n'acceptait pas les fonctions ftp (j'ai eu mon compte il n'y a pas longtemps)
existe il une autre methode pour l'upload ?

par Cyrano » 26 nov. 2006, 16:42

Je vais ajouter une ou deux choses :
-1- on utilise pas le "@" : masquer les erreurs de cette manière, c'est un cache-misère. On corrige;
-2- On indente proprement le code de façon à ce qu'il soit lisible humainement et là, tu t'es un peu loupé, voici ce qui aurait dû être fait et tu va voir que de cette manière, l'erreur serait évidente d'un simple coup d'oeil :
<?php
$host       = "ftpperso.free.fr";
$repertoire = "/upload/";
$login      = "login";
$password   = "password";
// connection au serveur
if (!$ftp = ftp_connect($host))
{
    echo "Connection impossible<br>";
}
else
{
    echo "Connecté à ". $host ."<br>";
    // login
    if(ftp_login($ftp, $login, $password))
    {
        echo "Login ok<br>";
        // changement de répertoire
        if(ftp_chdir($ftp,$repertoire))
        {
            echo "Changement de répertoire effectué<br>";
            // affichage du répertoire
            $rep_courant = ftp_pwd($ftp);
            echo "Répertoire courant : <b>". $rep_courant ."</b> <br>";
            // Liste des fichiers
            if ($fichiers = ftp_nlist($ftp,"."))
            {
                echo "<blockquote><tt>";
                while(list(,$nom) = each($fichiers))
                {
                    echo "". $nom ."<br>";
                }
                echo "</tt></blockquote>";
                // le repertoire n'existe pas
            }
            else
            {
                echo "Répertoire inexistant !";
            }
            // erreur lors changement repertoire
        }
        else
        {
            echo "Une erreur s'est produite lors du changement de répertoire (". $repertoire .")<br>";
        }
        // erreur lors du login
    }
    else
    {
        echo "Une erreur s'est produite lors du login<br>";
    }
    $ftp1 = ftp_put($ftp, $_POST['file'] , $_POST['filename'], FTP_BINARY);
    // deconnection
    ftp_quit($ftp);
 // <<=== accolade fermante du else manquante !
?>
-3- il me semble que de toutes façons ça ne peut pas fonctionner : les fonction FTP sont désactivées chez free (à vérifier, ça a peut-être changé, je n'ai pas remarqué dernièrement.

par Truc » 26 nov. 2006, 15:08

Salut,

Lorsqu'un message d'erreur indique la dernière ligne tu as 9 chances sur 10 qu'il manque une accolade, fait le compte. :wink:

upload chez free

par pfrib » 26 nov. 2006, 12:34

bonjour

j'ai un compte chez free, et c'est la première fois que j'essaye l'upload...
j'ai trouvé un scipt :

Code : Tout sélectionner

/*Page 1*/ <form id="form1" name="form1" enctype="multipart/form-data" method="post" action="page2.php"> <label> <input type="file" name="file" /> </label> <p> <label> <input type="submit" name="Submit" value="Envoyer" /> </label> </p> </form>
/*Page 2*/
<?php
$host = "ftpperso.free.fr";
	$repertoire = "/upload/";
	$login = "login";
	$password = "password";
  // connection au serveur
  if (!$ftp = @ftp_connect($host))
  {
     echo "Connection impossible<br>";
    }else{
     echo "Connecté à $host<br>";
    // login
     if(@ftp_login($ftp, $login, $password)){
        echo "Login ok<br>";
       // changement de répertoire
        if(@ftp_chdir($ftp,$repertoire))
        {
           echo "Changement de répertoire effectué<br>";
          // affichage du répertoire
           $rep_courant = @ftp_pwd($ftp);
           echo "Répertoire courant : <b>$rep_courant</b> <br>";
          // Liste des fichiers
           if ($fichiers = @ftp_nlist($ftp,".")) {
              echo "<blockquote><tt>";
              while(list(,$nom) = each($fichiers))
         		{
                 echo "$nom<br>";
             	}
              echo "</tt></blockquote>";
             // le repertoire n'existe pas
             }
			 else {
              echo "Répertoire inexistant !";
           }
         // erreur lors changement repertoire
          }
		  else{
          echo "Une erreur s'est produite lors du changement de répertoire ($repertoire)<br>";
        }
      // erreur lors du login
       }
	   else{
         echo "Une erreur s'est produite lors du login<br>";
     }
    $ftp1=ftp_put($ftp, $_POST['file'] , $_POST['filename'], FTP_BINARY);
    // deconnection
     @ftp_quit($ftp);
?>
Mais j'obtiens un erreur :
Parse error: syntax error, on line 57
la ligne 57 correspond à la dernière ligne du fichier </html>
(j'ai mis toute la partie html après la partie PHP)

Merci