|
|
|
|
<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>
<?
// 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) ;
}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>");
}
Configuration: Windows XP Firefox 1.5.0.12
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);
|
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 |
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... |
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é. |
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 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!! |
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 ? |
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. |
Juste avant le rename tu fait sa:
$extension = ".jpg" $NewNomFichier = $NewNomFichier . $extension rename($nomFichier, $NewNomFichier) ; |
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 : <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 |
Voilà ca marche impeccable, merci pr ton aide |
| 06/11 19h24 | [PHP] Upload de fichiers | PHP |
| 28/09 10h17 | [Webmaster] Faire facilement un espace d'upload | Webmaster |
| 25/10 16h23 | [Webmaster] Afficher facilement le code php/xhtml de vos pages | Webmaster |
| 03/01 12h12 | [Windows XP] Renommer plusieurs fichiers | Windows XP |
| 13/06 09h53 | [PHP] Lister le contenu d'un répertoire | PHP |
| 10/04 16h37 | Renommer fichier avec php/IIS | 0 |
| 23/07 17h03 | Renommer fichier a la date du jour | 4 |
| 15/07 18h01 | [PHP] Compression fichir .zip OU .tar.gz | 1 |
| 29/06 19h03 | Impossible renommer fichiers | 5 |
![]() | MP3Tag - Mp3tag est un éditeur de Métatags (ID3 tags) pour la plupart des formats audio courants. Il est capable de renommer un grand... | Catégorie: Marquage (ID3) Licence: Freeware/gratuit |
![]() | PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de... | Catégorie: PHP Licence: Freeware/gratuit |
![]() | dia - DIA est un équivalent libre du programme VISIO de Microsoft; permettant de créer des diagrammes, des organigrammes, des... | Catégorie: Dessin Licence: Open Source |
![]() | AVS Disc Creator - Avec AVS DiscCreator vous pouvez rapidement graver vos données sur CD/DVD et Blu-ray disc. <h2>Fonctionnalités</h2> ... | Catégorie: Gravure Licence: Freeware/gratuit |