Tout dabord je remercie Cyrano de l'aide mais j'ai eu beaucoup de difficultés avec le script qu'il m'a proposé (je ne maitrise pas autant que lui) et je préfére me "rabattre" sur un script plus concis. Néanmoins j'ai quelques soucis que je n'arrive pas à résoudre.
Je souhaite que la miniature s'enregistre dans le dossier "minimag". Actuellement elle s'enregistre dans le répertoire racine.
Comment faut - il écrire le chemin ?
<? imagejpeg($destination, "minimag/"$_FILES['photo']['name']);?>
Mon 2ème soucis; la miniature s'affiche toute noire? Voici le script en entier
<BODY><?php
// je réceptionne le formulaire et indique le répertoire de destination//
if(isset($_FILES['photo'])){ $dest_dossier = 'imag/';
//paramétre//
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 1000000;
// vérifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
}
elseif( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
}
if(!isset($erreur))
{
// il est copié du temporaire vers mon répertoire//
$dest_fichier = basename($_FILES['photo']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier);
?>
<?php
//Redimensionne l'image
$source = imagecreatefromjpeg($_FILES['photo']['name']); // La photo est la source
$destination = imagecreatetruecolor(200, 150); // On crée la miniature vide
// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);
// On crée la miniature
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
// On enregistre la miniature dans le dossier
imagejpeg($destination, $_FILES['photo']['name']);
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
}
}
?>
<?
require("config.php");
$mysql_link = MYSQL_CONNECT("$localhost","$login","$mot") OR DIE("Unable to connect to database !!");
@mysql_select_db($dbName ,$mysql_link ) or die( "Unable to select database ??");
//je réceptionne le nom du fichier et son chemin//
if(isset($_FILES['photo']['name'])) $FILES=$_POST['url'];
else $_FILES="";
// je l'écris dans le champ chemin_fichier//
$sql = "INSERT INTO imag(url,chemin_fichier) VALUES('". $imag ."', '". $dest_dossier . $dest_fichier ."')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
mysql_query("SELECT * FROM $url");
// Redirection vers une page
header('URL=exemple.php');
?>
</body>
</html>
Si quelqu'un peut m'aider. Merci d'avance.