Php renommer un fichier
Résolu/Fermé
nanaixme
Messages postés
12
Date d'inscription
lundi 11 juin 2007
Statut
Membre
Dernière intervention
14 juin 2007
-
11 juin 2007 à 15:42
losdiabolos Messages postés 61 Date d'inscription mercredi 5 octobre 2005 Statut Membre Dernière intervention 17 décembre 2010 - 8 mars 2010 à 17:32
losdiabolos Messages postés 61 Date d'inscription mercredi 5 octobre 2005 Statut Membre Dernière intervention 17 décembre 2010 - 8 mars 2010 à 17:32
A voir également:
- Php renommer fichier
- Fichier rar - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
13 réponses
Camuke
Messages postés
224
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
12 août 2011
88
11 juin 2007 à 15:54
11 juin 2007 à 15:54
utilise la fonction rename:
<?
rename(nom_depart, nom_nouveau);
?>
donc dans ton cas sa donnerai sa:
$nomFichier = $_FILES['fichier1']["name"] ;
$NewNomFichier = 'LeNomQueTuVeut';
rename($nomFichier, $NewNomFichier);
<?
rename(nom_depart, nom_nouveau);
?>
donc dans ton cas sa donnerai sa:
$nomFichier = $_FILES['fichier1']["name"] ;
$NewNomFichier = 'LeNomQueTuVeut';
rename($nomFichier, $NewNomFichier);
nanaixme
Messages postés
12
Date d'inscription
lundi 11 juin 2007
Statut
Membre
Dernière intervention
14 juin 2007
20
12 juin 2007 à 12:40
12 juin 2007 à 12:40
Cela marche correctement, j'ai fait des petites modifs ds mon script autour.
Encore une question, mes fichiers ne seront que des images jpg ou jpeg lorsque je regarde mon répertoire où je stocke mes images, l'image renommée n'a pas d'extension. Il y a une possibilité de garder la mm extension après le renommage ?
Encore une question, mes fichiers ne seront que des images jpg ou jpeg lorsque je regarde mon répertoire où je stocke mes images, l'image renommée n'a pas d'extension. Il y a une possibilité de garder la mm extension après le renommage ?
nanaixme
Messages postés
12
Date d'inscription
lundi 11 juin 2007
Statut
Membre
Dernière intervention
14 juin 2007
20
12 juin 2007 à 13:15
12 juin 2007 à 13:15
J'avais bien modifié le script avec le bon nom de variable. Dc avc ttes modifications des bouts de scripts cela donne ca :
script du formulaire :
Script pour récupérer les données
script d'upload avc renommage de fichier :
Pr le renommage j'ai rajouté une variable suite à une nouvelle demande du client mais cela marche correctement
script du formulaire :
<table id="choixMarque"> <tr > <td><input type="checkbox" name="choixMarquePrincipal[]" value="luminarc" id="luminarc"></td> <td>Luminarc</td> <td><input type="checkbox" name="choixMarquePrincipal[]" value="mikasa" id="mikasa"></td> <td>Mikasa</td> <td><input type="checkbox" name="choixMarquePrincipal[]" value="mikasa Oenologie" id="mikasaOenologie"></td> <td>Mikasa oenologie</td> <td><input type="checkbox" name="choixMarquePrincipal[]" value="studio Nova" id="sn"></td> <td>Studio Nova</td> <td><input type="checkbox" name="choixMarquePrincipal[]" value="cda" id="cda"></td> <td>Cristal d'Arques</td> </tr> </table>
Script pour récupérer les données
//TRONC COMMMUN $NewNomFichier = "" ; //variable de renommage de fichier uploadé et affiche le nom de la marque if (isset($_POST['choixMarquePrincipal'])) { for ($i = 0, $c = count($_POST['choixMarquePrincipal']); $i < $c; $i++) { $NewNomFichier = $NewNomFichier . $_POST['choixMarquePrincipal'][$i] ; } } $NewNomFichier2 = "" ; //variable de renommage de fichier uploadé et affiche le nom du "what" if(isset($_POST['choixForm'])) { for($i=0,$c=count($_POST['choixForm']); $i<$c; $i++){ $NewNomFichier2 = $NewNomFichier2 . $_POST['choixForm'][$i] ; } }
script d'upload avc renommage de fichier :
// 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) ; rename($DESTINATION_FOLDER.$nomFichier, $DESTINATION_FOLDER.$NewNomFichier."_".$NewNomFichier2) ;
Pr le renommage j'ai rajouté une variable suite à une nouvelle demande du client mais cela marche correctement
Camuke
Messages postés
224
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
12 août 2011
88
12 juin 2007 à 09:53
12 juin 2007 à 09:53
Si j'ai bien compris, l'utilisateur doit selectionner le nom de son fichier a partir de ta liste mais, il doit en choisir qu'un seul? Si oui, il faut utilise plutot des boutons radio donc sa donnerai sa:
formulaire de choix du nom:
<table id="choixMarque">
<tr >
<td><input type="radio" name="choixMarquePrincipal" value="luminarc" id="luminarc"></td>
<td>Luminarc</td>
<td><input type="radio" name="choixMarquePrincipal" value="mikasa" id="mikasa"></td>
<td>Mikasa</td>
<td><input type="radio" name="choixMarquePrincipal" value="mikasa Oenologie" id="mikasaOenologie"></td>
<td>Mikasa oenologie</td>
<td><input type="radio" name="choixMarquePrincipal" value="studio Nova" id="sn"></td>
<td>Studio Nova</td>
<td><input type="radio" name="choixMarquePrincipal" value="cda" id="cda"></td>
<td>Cristal d'Arques</td>
</tr>
</table>
Ensuite, tu recupere toute les données de ton fichier mais nul part tu ne recupere les donnée de tes bouton donc quelque part dans ton code:
if (isset($_GET['choixMarquePrincipal'] (ou $_POST)) {
$NewNomFichier = $_GET['choixMarquePrincipal']; //sa va ecrire dans la variable le value
}
et apres tu aura:
$nomFichier=$_FILES['fichier1']["name"] ;
rename($nomFichier,$newNomFichier) ;
Normalement sa doit marcher, si s'est bien se que tu veux
formulaire de choix du nom:
<table id="choixMarque">
<tr >
<td><input type="radio" name="choixMarquePrincipal" value="luminarc" id="luminarc"></td>
<td>Luminarc</td>
<td><input type="radio" name="choixMarquePrincipal" value="mikasa" id="mikasa"></td>
<td>Mikasa</td>
<td><input type="radio" name="choixMarquePrincipal" value="mikasa Oenologie" id="mikasaOenologie"></td>
<td>Mikasa oenologie</td>
<td><input type="radio" name="choixMarquePrincipal" value="studio Nova" id="sn"></td>
<td>Studio Nova</td>
<td><input type="radio" name="choixMarquePrincipal" value="cda" id="cda"></td>
<td>Cristal d'Arques</td>
</tr>
</table>
Ensuite, tu recupere toute les données de ton fichier mais nul part tu ne recupere les donnée de tes bouton donc quelque part dans ton code:
if (isset($_GET['choixMarquePrincipal'] (ou $_POST)) {
$NewNomFichier = $_GET['choixMarquePrincipal']; //sa va ecrire dans la variable le value
}
et apres tu aura:
$nomFichier=$_FILES['fichier1']["name"] ;
rename($nomFichier,$newNomFichier) ;
Normalement sa doit marcher, si s'est bien se que tu veux
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
nanaixme
Messages postés
12
Date d'inscription
lundi 11 juin 2007
Statut
Membre
Dernière intervention
14 juin 2007
20
12 juin 2007 à 11:20
12 juin 2007 à 11:20
L'utlisateur a la possibilité de cocher pls marques c'est pr cela que ce sont des checkbox et non des boutons radios.
j'ai des écrit un fichier où je récupère les données en $_POST :
if (isset($_POST['choixMarque'])) {
$choixMarque="" ;
for($i=0,$c=count($_POST['choixMarque']); $i<$c; $i++){
$choixMarque.= $_POST['choixMarque'][$i] ;
}
}
Je vais essayer ce que tu m'as dit...
j'ai des écrit un fichier où je récupère les données en $_POST :
if (isset($_POST['choixMarque'])) {
$choixMarque="" ;
for($i=0,$c=count($_POST['choixMarque']); $i<$c; $i++){
$choixMarque.= $_POST['choixMarque'][$i] ;
}
}
Je vais essayer ce que tu m'as dit...
Camuke
Messages postés
224
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
12 août 2011
88
12 juin 2007 à 11:36
12 juin 2007 à 11:36
Je veux bien utiliser des checkbox, le probleme s'est qu'un fichier peux avoir QU'UN SEUL NOM ^^. donc si il en selectionne plusieur, apres faut soit que tu lui demande lequel il veux comme non soit que tu le choississent toi meme.
Si tu leur fait choisir le nom principale:
tu peux faire un 2eme formulaire avec une liste deroulante qui contient les nom choisit et il doivent choisir le nom du fichier.
exemple si tu le choisit toi meme:
tu met un ordre de priorite au nom: si X, Y, Z sont coché, alors s'est X qui est utilise. si A, X, B est coché, s'est A qui est utilisé.
Si tu leur fait choisir le nom principale:
tu peux faire un 2eme formulaire avec une liste deroulante qui contient les nom choisit et il doivent choisir le nom du fichier.
exemple si tu le choisit toi meme:
tu met un ordre de priorite au nom: si X, Y, Z sont coché, alors s'est X qui est utilise. si A, X, B est coché, s'est A qui est utilisé.
nanaixme
Messages postés
12
Date d'inscription
lundi 11 juin 2007
Statut
Membre
Dernière intervention
14 juin 2007
20
12 juin 2007 à 11:53
12 juin 2007 à 11:53
J'avais pensé au principe de priorité du nom de marque si il y en a pls mais mon client désire voir apparaitre ts les noms de marque. Je pensais dc concaténer les noms de marque si c'est possible mais ce qui vt dire qu'il faut parcourir le tableau pr savoir quelle marque est cochée ou non.
Je ne sais pas si je suis claire.
Je ne sais pas si je suis claire.
Camuke
Messages postés
224
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
12 août 2011
88
12 juin 2007 à 12:16
12 juin 2007 à 12:16
Je vais chercher ou ete l'erreur mais voila le code qui devrai marcher:
le formulaire avec des case a cocher:
<table>
<tr >
<td><input type="checkbox" name="choixMarquePrincipal[]" value="luminarc" id="luminarc"></td>
<td>Luminarc</td>
<td><input type="checkbox" name="choixMarquePrincipal[]" value="mikasa" id="mikasa"></td>
<td>Mikasa</td>
<td><input type="checkbox" name="choixMarquePrincipal[]" value="mikasa Oenologie" id="mikasaOenologie"></td>
<td>Mikasa oenologie</td>
<td><input type="checkbox" name="choixMarquePrincipal[]" value="studio Nova" id="sn"></td>
<td>Studio Nova</td>
<td><input type="checkbox" name="choixMarquePrincipal[1" value="cda" id="cda"></td>
<td>Cristal d'Arques</td>
</tr>
</table>
(il y a pas le <form> et le <submit>, je supose qu'il est plus loin dans ton formulaire?)
et dans le code:
pour renommer j'ai pris ta derniere idée, je recupere tout les valeur des cases coché et je les concatenne pour faire un nom:
$NewNomFichier = "";
if (isset($_POST['choixMarquePrincipal'])) {
for ($i = 0, $c = count($_POST['choixMarquePrincipal']); $i < $c; $i++) {
$NewNomFichier = $NewNomFichier . $_POST['choixMarquePrincipal'][$i];
}
}
et enfin:
$nomFichier=$_FILES['fichier1']["name"] ;
rename($nomFichier, $NewNomFichier) ;
En theorie, sa marche!!
le formulaire avec des case a cocher:
<table>
<tr >
<td><input type="checkbox" name="choixMarquePrincipal[]" value="luminarc" id="luminarc"></td>
<td>Luminarc</td>
<td><input type="checkbox" name="choixMarquePrincipal[]" value="mikasa" id="mikasa"></td>
<td>Mikasa</td>
<td><input type="checkbox" name="choixMarquePrincipal[]" value="mikasa Oenologie" id="mikasaOenologie"></td>
<td>Mikasa oenologie</td>
<td><input type="checkbox" name="choixMarquePrincipal[]" value="studio Nova" id="sn"></td>
<td>Studio Nova</td>
<td><input type="checkbox" name="choixMarquePrincipal[1" value="cda" id="cda"></td>
<td>Cristal d'Arques</td>
</tr>
</table>
(il y a pas le <form> et le <submit>, je supose qu'il est plus loin dans ton formulaire?)
et dans le code:
pour renommer j'ai pris ta derniere idée, je recupere tout les valeur des cases coché et je les concatenne pour faire un nom:
$NewNomFichier = "";
if (isset($_POST['choixMarquePrincipal'])) {
for ($i = 0, $c = count($_POST['choixMarquePrincipal']); $i < $c; $i++) {
$NewNomFichier = $NewNomFichier . $_POST['choixMarquePrincipal'][$i];
}
}
et enfin:
$nomFichier=$_FILES['fichier1']["name"] ;
rename($nomFichier, $NewNomFichier) ;
En theorie, sa marche!!
Camuke
Messages postés
224
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
12 août 2011
88
12 juin 2007 à 12:47
12 juin 2007 à 12:47
A moins que tu ai reecrit le code dans le post, ton erreur est toute simple:
dans ton formulaire du 1er post, tu ecrit sa:
<td><input type="checkbox" name="choixMarquePrincipal[]" value="luminarc" id="luminarc"></td>
et dans un post ou tu ecrit ton code de recuperation tu ecrit sa:
if (isset($_POST['choixMarque'])) {
$choixMarque="" ;
for($i=0,$c=count($_POST['choixMarque']); $i<$c; $i++){
$choixMarque.= $_POST['choixMarque'][$i] ;
}
}
A mon avis, ton erreur vient juste du fait que la variable $_POST['choixMarque'] n'existe pas car ton formulaire envoie un $POST de choixMarquePrincipal
La variable que tu recupere doit avoir EXACTEMENT le meme nom a la majuscule pres, sinon php pensera que se ne sont pas les memes.
dans ton formulaire du 1er post, tu ecrit sa:
<td><input type="checkbox" name="choixMarquePrincipal[]" value="luminarc" id="luminarc"></td>
et dans un post ou tu ecrit ton code de recuperation tu ecrit sa:
if (isset($_POST['choixMarque'])) {
$choixMarque="" ;
for($i=0,$c=count($_POST['choixMarque']); $i<$c; $i++){
$choixMarque.= $_POST['choixMarque'][$i] ;
}
}
A mon avis, ton erreur vient juste du fait que la variable $_POST['choixMarque'] n'existe pas car ton formulaire envoie un $POST de choixMarquePrincipal
La variable que tu recupere doit avoir EXACTEMENT le meme nom a la majuscule pres, sinon php pensera que se ne sont pas les memes.
Camuke
Messages postés
224
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
12 août 2011
88
12 juin 2007 à 12:52
12 juin 2007 à 12:52
Juste avant le rename tu fait sa:
$extension = ".jpg"
$NewNomFichier = $NewNomFichier . $extension
rename($nomFichier, $NewNomFichier) ;
$extension = ".jpg"
$NewNomFichier = $NewNomFichier . $extension
rename($nomFichier, $NewNomFichier) ;
nanaixme
Messages postés
12
Date d'inscription
lundi 11 juin 2007
Statut
Membre
Dernière intervention
14 juin 2007
20
12 juin 2007 à 13:25
12 juin 2007 à 13:25
Voilà ca marche impeccable, merci pr ton aide
Bonjour, je cherches depuis un moment comment renommer un fichier. J'ai ce bout de code dont je ne comprend rien (à part en gros il m'eupload un fichier dans un dossier photos) :
J'ai lu plein de choses sur les différentes méthodes pour renommer mais j'ai pas réussi à en faire marché une seule, vu que je n'y connais pas grand chose en php, si quelqu'un peut m'aider mercil
<?php if (isset($_FILES['Filedata']['name'])) { $uploadDir = "./photos/"; $uploadFile = $uploadDir . basename($_FILES['Filedata']['name']); move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile); } ?>
J'ai lu plein de choses sur les différentes méthodes pour renommer mais j'ai pas réussi à en faire marché une seule, vu que je n'y connais pas grand chose en php, si quelqu'un peut m'aider mercil
Camuke
Messages postés
224
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
12 août 2011
88
8 mars 2010 à 13:06
8 mars 2010 à 13:06
la fonction rename de php fait sa tres bien:
$nomFichierActuel = "/mesphoto/gallery1/toto.jpg";
$NewNomFichier = "/mesphoto/gallery1/titi.jpg";
rename($nomFichierActuel, $NewNomFichier) ;
Tu peux aussi t'en servir pour le déplacer:
$nomFichierActuel = "/mesphoto/gallery1/toto.jpg";
$NewNomFichier = "/mesphoto/gallery2/titi.jpg";
rename($nomFichierActuel, $NewNomFichier) ;
$nomFichierActuel = "/mesphoto/gallery1/toto.jpg";
$NewNomFichier = "/mesphoto/gallery1/titi.jpg";
rename($nomFichierActuel, $NewNomFichier) ;
Tu peux aussi t'en servir pour le déplacer:
$nomFichierActuel = "/mesphoto/gallery1/toto.jpg";
$NewNomFichier = "/mesphoto/gallery2/titi.jpg";
rename($nomFichierActuel, $NewNomFichier) ;
losdiabolos
Messages postés
61
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
17 décembre 2010
16
8 mars 2010 à 17:32
8 mars 2010 à 17:32
merci Camuke j'ai trouvé la réponse à mon pb:
Ça doit être un peu barbare mais ça marche.
<?php if (isset($_FILES['Filedata']['name'])) { $uploadDir = "./photos/"; $uploadFile = $uploadDir ."ma_photo.jpg". ($_FILES['Filedata']['ma_photo.jpg']); echo " "; move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile); echo " "; } ?>
Ça doit être un peu barbare mais ça marche.
11 juin 2007 à 16:07
En théorie, je devrais faire si je comprends bien
$nomFichier=$_FILES['fichier1']["name"] ;
$newNomFichier=$choixMarquePrincipal[$i] ;
rename($nomFichier,$newNomFichier) ;
mais comment parcourir mon tableau $choixMarquePrincipal[] et vérifier qu'une case est cochée