par
Invité » 08 janv. 2006, 18:13
bonjour,
voici mon script:
<?
if(isset($_FILES['photo']))
{
unset($erreur);
$extension_tolere = array('png', 'jpg', 'jpeg'); // extension d'images autorisées
$poids_max = 80000;
$dossier_upload = "upload/photo/";
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extension_tolere ) ) // si l'extension n'est pas de type $extension_tolere
{
$erreur = 'Votre image doit-être de type png, jpeg ou jpg.';
}
elseif( file_exists($_FILES['photo']['tmp_name']) // si le fichier existe
&& filesize($_FILES['photo']['tmp_name']) > $poids_max) // et si son poids est supérieur à poids_max
{
$erreur = 'Votre image doit être inférieure à 80Ko !';
}
if(!isset($erreur)) // s'il n'y pas d'erreur
{
$dest_img = basename($_FILES['photo']['name']); // name signifie le nom de l'image sur la machine du visiteur
$dest_img = strtr($dest_img,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); // remplace les caractères spéciaux
$dest_img = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_img); // remplace les autres caractères spéciaux
move_uploaded_file($_FILES['photo']['tmp_name'], $dossier_upload . $dest_img); // tmp_name chemin temporaire du fichier
$chemin = $dossier_upload . $dest_img;
}
if(isset($erreur))
{
echo '<p>' . $erreur .'</p>';
}
}
?>
<html>
<body>
<!-- Erreur ? -->
<?
if(isset($erreur)){
echo '<p>', $erreur ,'</p>';
}
?>
<!-- Formulaire -->
<!-- Attention, ne de ne pas oublier le enctype="multipart/form-data" -->
<form method="POST" action="upload5.php" enctype="multipart/form-data">
<!-- Limiter la taille des fichiers à 500Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
<fieldset>
<legend>Envoi de fichiers</legend>
<!-- champs d'envoi de fichier, de type file -->
<p><label for="photo">Photo :</label><input type="file" name="photo" /></p>
<!-- bouton d'envoi -->
<p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
</legend>
</fieldset>
</form>
</body>
</html>
en fait il fonctionne bien mais j'ai une modifs à faire mais je n'y arrive pas.
je souhaiterais moifier le nom de l'image de la sorte que le nom de l'image soit pseudo_numero.jpg à la place du nom réel de l'image.
si quelq'un pouvais me renseigner à ce sujet ce serais super sympa.
bonjour,
voici mon script:
[php]<?
if(isset($_FILES['photo']))
{
unset($erreur);
$extension_tolere = array('png', 'jpg', 'jpeg'); // extension d'images autorisées
$poids_max = 80000;
$dossier_upload = "upload/photo/";
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extension_tolere ) ) // si l'extension n'est pas de type $extension_tolere
{
$erreur = 'Votre image doit-être de type png, jpeg ou jpg.';
}
elseif( file_exists($_FILES['photo']['tmp_name']) // si le fichier existe
&& filesize($_FILES['photo']['tmp_name']) > $poids_max) // et si son poids est supérieur à poids_max
{
$erreur = 'Votre image doit être inférieure à 80Ko !';
}
if(!isset($erreur)) // s'il n'y pas d'erreur
{
$dest_img = basename($_FILES['photo']['name']); // name signifie le nom de l'image sur la machine du visiteur
$dest_img = strtr($dest_img,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); // remplace les caractères spéciaux
$dest_img = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_img); // remplace les autres caractères spéciaux
move_uploaded_file($_FILES['photo']['tmp_name'], $dossier_upload . $dest_img); // tmp_name chemin temporaire du fichier
$chemin = $dossier_upload . $dest_img;
}
if(isset($erreur))
{
echo '<p>' . $erreur .'</p>';
}
}
?>
<html>
<body>
<!-- Erreur ? -->
<?
if(isset($erreur)){
echo '<p>', $erreur ,'</p>';
}
?>
<!-- Formulaire -->
<!-- Attention, ne de ne pas oublier le enctype="multipart/form-data" -->
<form method="POST" action="upload5.php" enctype="multipart/form-data">
<!-- Limiter la taille des fichiers à 500Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
<fieldset>
<legend>Envoi de fichiers</legend>
<!-- champs d'envoi de fichier, de type file -->
<p><label for="photo">Photo :</label><input type="file" name="photo" /></p>
<!-- bouton d'envoi -->
<p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
</legend>
</fieldset>
</form>
</body>
</html> [/php]
en fait il fonctionne bien mais j'ai une modifs à faire mais je n'y arrive pas.
je souhaiterais moifier le nom de l'image de la sorte que le nom de l'image soit pseudo_numero.jpg à la place du nom réel de l'image.
si quelq'un pouvais me renseigner à ce sujet ce serais super sympa.