Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/12/2010, 17h13   #1
Invité de passage
 
Inscription : décembre 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 4
Points : 1
Points : 1
Par défaut envoi + nom de fichier en php

Bonjour,

je souhaite "uploader" un fichier et surtout pouvoir le renommer. Je souhaite qu'il prenne le nom de la personne (via un input) à qui appartient le fichier en question.

Je suis en plein apprentissage du code PHP et après de multiples recherches, j'ai bien compris comment faire pour traiter l'envoi mais j'ai toujours des difficultés à renommer le fichier sans créer une autre erreur.

Le dernier code que j'ai modifié me permet bien de renommer le fichier mais le problème c'est qu'il me fait disparaitre mon extension. Je retrouve donc un fichier qui a bien de la personne mais qui est d'un format inconnu.

Je vous remercie par avance pour toutes vos réponses.

Code HTML.

<html> <body>

<form method="POST" action="30.php" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />

<p><label for="nom">Nom :</label><input type="text" name="nom" /></p>
<p><label for="photo">Fichier :</label><input type="file" name="fichier" /></p>

<p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>

</form>
</body></html





Traitement PHP

<?php

if(isset($_FILES['fichier']))
{
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 1000000;
$dest_dossier = 'fichiers/';
// vérifications
if( !in_array( substr(strrchr($_FILES['fichier']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
}
elseif( file_exists($_FILES['fichier']['tmp_name'])
and filesize($_FILES['fichier']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
}

if(!isset($erreur))
{
$dest_fichier = basename($_FILES['fichier']['name']);
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');

$dest_fichier = $_POST ['nom'];

move_uploaded_file($_FILES['fichier']['tmp_name'], $dest_dossier . $dest_fichier);
}
}

?>
webgraphiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 17h19   #2
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Bonjour,

il doit te manquer l'extension de ton fichier dans move_uploaded_file

Code php :
1
2
3
4
$dest_fichier = $_POST['nom'];

move_uploaded_file($_FILES['fichier']['tmp_name'], $dest_dossier . $dest_fichier.EXTENSION);
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 18h41   #3
Invité de passage
 
Inscription : décembre 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 4
Points : 1
Points : 1
Merci beaucoup pour ta réponse.

J'ai effectivement rajouter l'extension après l'avoir récupérée.

move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier .$extension);
webgraphiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h30.


 
 
 
 
Partenaires

Hébergement Web