<?php
define('USER', 'xxxxxxxx'); // Nom Utilisateur
define('MDP', 'Xyxyxy'); // Mot de passe
define('_DB', 'ma_base'); // Nom de votre Base 1
define('HOST', 'localhost');
$conc_adress = "https://www.xxxxxxxxxxxx.com/"; // l'URL de votre site EX: https://www.monSite.com
/** identifiants BDD pour le site */
// Create connection
$conn_DB = mysqli_connect(HOST,USER,MDP,_DB);
// si la connexion se fait en UTF-8, sinon ne rien indiquer
$conn_DB->set_charset("utf8");
if (!$conn_DB) {
die("Erreur de connexion: " . mysqli_connect_error());
}
?>
<?php
$compteid = 1;
$query_compte = mysqli_query($conn_DB, "SELECT * FROM membres WHERE id_membre = '".$compteid."'");
$existe_compte = mysqli_fetch_object($query_compte);
$img_waterm = "watermark.png";
?>
<?php
// Constantes
$dr_img = "../images_membres/";
$dr_membre = $existe_compte->id_membre;
$target_dir = "images_membres/".$compteid."/";
define('TARGET', $target_dir);
define('MAX_SIZE', 100000); // Taille max en octets du fichier
define('WIDTH_MAX', 800); // Largeur max de l'image en pixels
define('HEIGHT_MAX', 800); // Hauteur max de l'image en pixels
define('WIDTH_MAX_COUPE', 300); // Largeur max pour recoupe en pixels
define('HEIGHT_MAX_COUPE', 300); // Hauteur max pour recoupe en pixels
// Tableaux de donnees
$tabExt = array('jpg','gif','png','jpeg','JPEG'); // Extensions autorisees
$infosImg = array();
// Variables
$extension = '';
$message = '';
$nomImage = '';
if (isset($_POST['submit_modif'])){
if(file_get_contents(''.$conc_adress.'/TEST_UPLOAD_COMPLET/images_membres/'.$dr_membre.'/'.$existe_compte->avatar.'')) {
$target_delete = "images_membres/".$compteid."/".$existe_compte->avatar."";
$dossier_img = $target_delete;
unlink( $dossier_img ) ;
}
}
/************************************************************
* Creation du repertoire cible si inexistant
*************************************************************/
if( !is_dir(TARGET) ) {
if( !mkdir(TARGET, 0755) ) {
exit('Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !');
}
}
/************************************************************
* Script d'upload
*************************************************************/
if (isset($_POST['submit_modif'])){
if(!empty($_POST)){
// On verifie si le champ est rempli
if( !empty($_FILES['fichier']['name']) )
{
// Recuperation de l'extension du fichier
$extension = pathinfo($_FILES['fichier']['name'], PATHINFO_EXTENSION);
// On verifie l'extension du fichier
if(in_array(strtolower($extension),$tabExt))
{
// On recupere les dimensions du fichier
$infosImg = getimagesize($_FILES['fichier']['tmp_name']);
// On verifie le type de l'image
if($infosImg[2] >= 1 && $infosImg[2] <= 14)
{
// On verifie les dimensions et taille de l'image
if(($infosImg[0] >WIDTH_MAX) && ($infosImg[1] > HEIGHT_MAX) && (filesize($_FILES['fichier']['tmp_name']) > MAX_SIZE))
{
$message = 'Erreur dans les dimensions et / ou poids de l\'image !<br />Taille Maxi: 100 000 octets<br />
Larg et Haut Maxi: 800px';
}
else {
if(($infosImg[0] > WIDTH_MAX_COUPE) && ($infosImg[1] > HEIGHT_MAX8COUPE) && (filesize($_FILES['fichier']['tmp_name'])
<= MAX_SIZE))
{
//on redimentionne limage
$x = 200;
$y = 200; # Taille en pixel de l'image redimensionnée
if ($infosImg)
if ($infosImg['mime']=='image/jpeg' ) {
$img_big = imagecreatefromjpeg($_FILES['fichier']['tmp_name']); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$infosImg[0],$infosImg[1]);
imagejpeg($img_mini,$_FILES['fichier']['tmp_name'] );
}
elseif ($infosImg['mime']=='image/png' ) {
$img_big = imagecreatefrompng($_FILES['fichier']['tmp_name']); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$infosImg[0],$infosImg[1]);
imagepng($img_mini,$_FILES['fichier']['tmp_name'] );
}
elseif ($infosImg['mime']=='image/gif' ) {
$img_big = imagecreatefromgif($_FILES['fichier']['tmp_name']); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$infosImg[0],$infosImg[1]);
imagegif($img_mini,$_FILES['fichier']['tmp_name'] );
}
$message_rd = '<br />+ Image redimensionnée ...';
}
{
// Parcours du tableau d'erreurs
if(isset($_FILES['fichier']['error'])
&& UPLOAD_ERR_OK === $_FILES['fichier']['error'])
{
$extension = str_replace('JPEG','jpg',$extension);
$extension = str_replace('jpeg','jpg',$extension);
$Newextension = str_replace('jpg','png',$extension);
// On renomme le fichier
$nomImage = md5(uniqid()) .'.'. $Newextension;
$watermarkImagePath = "".$img_waterm."";
// Si c'est OK, on teste l'upload
if(move_uploaded_file($_FILES['fichier']['tmp_name'], TARGET.$nomImage))
{
// Charge le tampon et la photo auxquels appliquer le filigrane
$watermarkImg = imagecreatefrompng($watermarkImagePath);
switch($fileType){
case 'jpg':
$im = imagecreatefromjpeg(TARGET.$nomImage);
break;
case 'jpeg':
$im = imagecreatefromjpeg(TARGET.$nomImage);
break;
case 'png':
$im = imagecreatefrompng(TARGET.$nomImage);
break;
default:
$im = imagecreatefromjpeg(TARGET.$nomImage);
}
// Définir les marges du filigrane
$marge_right = 10;
$marge_bottom = 10;
// Obtenir la hauteur / largeur de l'image du filigrane
$sx = imagesx($watermarkImg);
$sy = imagesy($watermarkImg);
// Copiez l'image du filigrane sur notre photo en utilisant les décalages de marge et
// la largeur de la photo pour calculer le positionnement du filigrane.
imagecopy($im, $watermarkImg, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0,
imagesx($watermarkImg), imagesy($watermarkImg));
// Enregistrer l'image et libérer de la mémoire
imagepng($im, TARGET.$nomImage);
$im = imagecreatefrompng(TARGET.$nomImage);
//Enfin on la remet ou elle était avec la qualité qu'on veut ! (ici 50)
$imgName = $nomImage;
$webPName = str_replace('png','webp',$nomImage);
exec("convert -colorspace RGB ".$imgName." ".$webPName . " ");
//imagejpeg($im, TARGET.$nomImage, 50);
imagewebp($im, TARGET.$webPName);
$nomdestroy = str_replace('webp','png',$webPName);
$pngdelete = "images_membres/".$dr_membre."/".$nomdestroy."";
if( file_exists ( $pngdelete))
unlink( $pngdelete ) ;
imagedestroy($im);
$modif_image = 'UPDATE membres SET `avatar` = "'.$webPName.'" WHERE id_membre = "'.$compteid.'"';
$res_modif_image = $conn_DB->query($modif_image);
$message = 'Upload réussi !';
$dr_message = '<br /><span style="color:#00CC00;">le fichier a été stocké à cette adresse:
/TEST_UPLOAD_COMPLET/images_membres/'.$compteid.'/'.$existe_compte->avatar.'.</span>';
}
else
{
$message = 'Problème lors de l\'upload !';
}
}
else
{
$message = 'Une erreur interne a empêché l\'uplaod de l\'image';
}
}
}
}
else
{
$message = 'Le fichier est trop volumineux ou n\'est pas une image !<br />
Taille Maxi: 100 000 octets<br />Larg et Haut Maxi: 800px';
}
}
else
{
$message = 'La photo doit être une image !<br />
Au format: (.jpg .jpeg .JPEG .gif .png) ';
}
}
else
{
$message = 'Vous n\'avez pas choisi d\'image !';
}
}
}
?>
<h1>Upload complet d'une image sur serveur web</h1>
<div class="">
<?php echo $message; ?> <?php echo $message_rd; ?> <?php echo $dr_message; ?>
</div>
<div class="">
<h2>Formulaire Upload :</h2><br>
<form enctype="multipart/form-data" action="<?PHP $PHP_SELF ?>" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo MAX_SIZE; ?>" />
<input class="parcour-input" type="file" required id="fichier_a_uploader" name="fichier"/>
<input type="submit" name= "submit_modif" id="submit_modif" value="Go" />
</form>
</div>
<div class="">
<h3>Votre Téléchargement :</h3>
<br>
<?php
$query_image = mysqli_query($conn_DB, "SELECT * FROM membres WHERE id_membre = '".$compteid."'");
$existe_image = mysqli_fetch_object($query_image);
if(file_get_contents(''.$conc_adress.'/TEST_UPLOAD_COMPLET/images_membres/'.$dr_membre.'/'.$existe_image->avatar.'')) {
$image_membre = ''.$conc_adress.'/TEST_UPLOAD_COMPLET/images_membres/'.$dr_membre.'/'.$existe_image->avatar.'';
$recharge_message = '<span style="color:#00CC00;">En selectionnant une autre image, l\'image actuelle
sera remplacée dans son dossier, ainsi qu\'en base de donnée.</span><br />Vous pouvez tester ...';
?>
<img style="vertical-align:middle;" src="<?php echo $image_membre ?>" alt="votre photo" />
<?php
}
?>
</div>
<hr>
<div class="">
<?php echo $recharge_message ?>
</div>