Script upload mp3 ftp

Fermé
xoxsidouxox Messages postés 4 Date d'inscription vendredi 7 août 2009 Statut Membre Dernière intervention 13 août 2009 - 7 août 2009 à 19:18
 N4vros - 21 déc. 2010 à 02:10
Bonjour,
Sur mon site j'ai créer une page et un dossier "files", cette page contient le code php suivant:

<?php

//--------------------------------------
//  DEFINITION DES VARIABLES
//--------------------------------------

$target     = "files/";  // Repertoire cible
$max_size   = 1000000000;     // Taille max en octets du fichier


$extensions_ok = array("mp3","MP3");

//------------------------------------------------------------
//  DEFINITION DES VARIABLES LIEES AU FICHIER
//------------------------------------------------------------

$nom_file   = $_FILES['fichier']['name'];
$taille     = $_FILES['fichier']['size'];
$tmp        = $_FILES['fichier']['tmp_name'];
$chemin     = $target.$_FILES['fichier']['name'];

$extension  = substr($nom_file,-3); // Récupération de l'extension

//---------------------------
//  SCRIPT D'UPLOAD
//---------------------------

if($_POST['posted'])
{

// On vérifie si le champ est rempli

  if($_FILES['fichier']['name'])
  {
     // On vérifie l'extension du fichier

    if(in_array(strtolower($extension),$extensions_ok))
    {
            
        // On vérifie les dimensions et taille de l'image

        if(($taille <= $max_size))
        {
           // Si c'est OK, on teste l'upload

            if(move_uploaded_file($tmp,$chemin))
            {

              // Si upload OK alors on affiche le message de réussite
                echo '<p>Fichier uploadée avec succès !</p>';
                echo '<ul><li>Fichier : '.$_FILES['fichier']['name'].'</li>';
                echo '<li>Taille : '.$_FILES['fichier']['size'].' Octets</li>';

               
            }
               else
            {

               // Sinon on affiche une erreur système
                echo '<p>Problème lors de l\'upload !</p>';


            }
        }
          else
        {

          // Sinon erreur sur les dimensions et taille de l'image
          echo '<p>Erreur dans la taille du fichier !</p>';
        }
    }
      else
    {

      // Sinon on affiche une erreur pour l'extension
        echo '<p>Votre fichier ne comporte pas une extension valide !</p>';
        
    }
   }
    else
   {

    // Sinon on affiche une erreur pour le champ vide
    echo '<p>Le champ du formulaire est vide !</p>';
   }
}
?>
<html>
<head>
<title>Upload d'un mp3</title>
</head>
<body>
<form enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" method="POST">
<p>Envoyer le fichier :</p>
<input type="hidden" name="posted" value="1">
<input name="fichier" type="file">
<input type="submit" value="Uploader">
</form>
</body>
</html> 


Mais quand j'upload un fichier MP3 la page se remet à zéro et je ne trouve aucun fichier mp3 dans le dossier "file" qui est chmoder 777.
d'où ça vient ce problème ?

Merci d'avance
A voir également:

4 réponses

Bon déterrage de topic mais bon sa peut aidé donc je donne la réponse:
l'erreur est bête:
<form enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" method="POST">

php_self n'est pas un fonction, il s'agit d'une variable prédéfinie.
Ici il faut utiliser $_SERVER qui est un tableau de variables prédéfinies créé par le serveur pour la session en cours.
ex:<?php echo $_SERVER['PHP_SELF']; ?>

Résultat:
<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">

Ton code marche très bien une foi cette petite erreur corrigé voila.
1
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 186
7 août 2009 à 20:19
"la page se remet à zéro"

et ca t'affiche rien ?
0
xoxsidouxox Messages postés 4 Date d'inscription vendredi 7 août 2009 Statut Membre Dernière intervention 13 août 2009
7 août 2009 à 20:26
ben rien sauf le formulaire initial !
0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 186
7 août 2009 à 21:11
Ben c'est qu'il doit pas rentrer dans ta boucle de test sur posted, sinon il aurait dû afficher quelquechose :S

déjà replace par if(isset($_POST["posted'])), c'est quand même plus propre

mais ca ne doit pas régler le pblème :S
0