Communauté Informatique NDFR.net

Communauté Informatique NDFR.net (http://www.ndfr.net/forums/index.php)
-   Programmation Web (HTML, PHP, ASP, Java, XML, etc.) (http://www.ndfr.net/forums/forumdisplay.php?f=65)
-   -   Renommer un fichier en fonction des choix sur un formulaire (http://www.ndfr.net/forums/showthread.php?t=8014)

anais 07-06-2007 16:43

Renommer un fichier en fonction des choix sur un formulaire
 
Bonjour,
Je voudrais renommer un fichier uploadé à partir d'un formulaire à l'aide de la fonction rename() ou move_uploaded_file(). Pr le moment rien de compliquer.

Mnt ca se complique. Je voudrais que mes fichiers se renomment en fonction des choix que l'utilisateur a fait ds des checkbox de mon formulaire.
C'est à dire, il a le choix entre pls marques et un type d'action pr cette marque. Dc mon image devra se nommer "nomMarque_action.jpg"

Comment puis-je réintégrer le nom de mes input dans le nom de mon image ?

Voilà le code de mon upload et l'affichage des images :

Code:

<?
// Récupération du dossier dans lequel le fichier sera uploadé   
$DESTINATION_FOLDER = 'upload/' ;                               
// Taille maximale de fichier, valeur en bytes                   
$MAX_SIZE = 50000000 ;                                                   
// Définition des extensions de fichier autorisées (avec le ".")
$AUTH_EXT = array( ".jpg", ".jpeg") ;                                           

// Fonction permettant de vérifier si l'extension du fichier est
// autorisée.

function isExtAuthorized($ext){
    global $AUTH_EXT;
    if(in_array($ext, $AUTH_EXT)){
        return true;
    }else{
        return false;
    }
}

// On vérifie que le champs contenant le chemin du fichier soit
// bien rempli.
if(!empty($_FILES['fichier1']["name"])){   
    // Nom du fichier choisi:
    $nomFichier = $_FILES['fichier1']["name"] ;
    // Nom temporaire sur le serveur:
    $nomTemporaire = $_FILES['fichier1']["tmp_name"] ;
    // Type du fichier choisi:
    $typeFichier = $_FILES['fichier1']["type"] ;
    // Poids en octets du fichier choisit:
    $poidsFichier = $_FILES['fichier1']["size"] ;
    // Code de l'erreur si jamais il y en a une:
    $codeErreur = $_FILES['fichier1']["error"] ;
    // Extension du fichier
    $extension = strrchr($nomFichier, ".") ;
   
    // Si le poids du fichier est de 0 bytes, le fichier est
    // invalide (ou le chemin incorrect) => message d'erreur
    // sinon, le script continue.
    if($poidsFichier <> 0){
        // Si la taille du fichier est supérieure à la taille
        // maximum spécifiée => message d'erreur
        if($poidsFichier < $MAX_SIZE){
            // On teste ensuite si le fichier a une extension autorisée
            if(isExtAuthorized($extension)){
                // Ensuite, on copie le fichier uploadé ou bon nous semble.
                $uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER . $nomFichier) ;
                if($uploadOk){
                    echo("L'upload a réussi !<br><br>") ;
                }
            }else{
                echo ("Files with extension $extension can't be upload<br>") ;
            }
        }else{
            $tailleKo = $MAX_SIZE / 1000;
            echo("You can't upload files with higher size than tailleKo Ko.<br>");
        }       
    }else{
        echo("The selected file is not correct <br>");
    }
}else{
    echo("You didn't choose a file<br>");
}

 //ouvre le repertoire
  $pointeur = opendir($DESTINATION_FOLDER) ;
  $i = 0 ;

  //stocke les noms de fichiers images dans un tableau
  while ($nomFichier = readdir($pointeur)) {
        $tab_image[$i] = $nomfichier ;
        $i++;
  }
   
  //on ferme le répertoire
  closedir($pointeur) ;
 
  //affichage des images
  for ($j=0;$j<=$i-1;$j++)
  {
      $image = '<img src="'.$DESTINATION_FOLDER.'/'.$tab_image[$j].'"/>' ;
    }   
?>


Matt 07-06-2007 17:45

Dans ton formulaire, les champs que tu as définis on normalement tous un attribut name.
Pour récupérer la valeur de ces champs dans ton code PHP, il faut regarder dans $_POST["valeur_attribut_name"] ou $_GET["valeur_attribut_name"], selon que les valeurs de ton formulaire sont passés en POST (par défaut) ou en GET (visible dans l'attribut method de ta balise form).

anais 07-06-2007 18:09

Mes champs ont bien des attributs "name" , mes valeurs de mon form sont passées avc $_POST car à partir de mon formulaire, je génère une page PHP qui reprend les infos de mon formulaire.

Tu vx dire qu'en reprenant simplement mes variables où je stocke les infos de mes marques et des actions, je peux les appeler ds ma fonction move_uploaded_filed() et ca va le faire ?

si on prd ton idée ca donnerait qq chose comme cela :
Code:

move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER . $nomMarque.$nomAction) ;
avec $nomMarque.$nomAction = $nomFichier ;
mais faut savoir que $nomMarque et $nomAction sont des tableaux


All times are GMT +2. The time now is 12:49.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.