Bonjour

J'ai un script d'upload de photo avec plusieurs redimensionnement . ce que je souhaite c'est apporté une amélioration .

Je souhaites donc uploadé mes photos en php MAIS en gardant la qualité des images aprés upload :

voilà le code, qu'est ce que je pourrais apporté comme amélioration pour donc upload sans perte de qualité


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php
session_start();
include("mysqlcon.php");
function getExtension($str) 
{
 
         $i = strrpos($str,".");
         if (!$i) { return ""; } 
         $l = strlen($str) - $i;
         $ext = substr($str,$i+1,$l);
         return $ext;
}
if(isset($_FILES["photodp"]))
{
	define ("MAX_SIZE",	"4000000");
	$errors	=	0;
	$filename		=	$_FILES["photodp"]["name"];
	$uploadedfile 	= 	$_FILES['photodp']['tmp_name'];
	$type_file 		= $_FILES['photodp']['type'];
	if ($filename) 
	{
		if( !is_uploaded_file($uploadedfile) )
		{
			echo "<script type='text/javascript'>alert(\"le fichier est introuvable\")</script>"; 
echo ("Fichier introuvable");
 
		}
		// on vérifie maintenant l'extension
		elseif( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png'))
		{
			exit("Le fichier n'est pas une image");
echo ("Le fichier n'est pas une image");
 
		}
		else
		{
 
			$size		=	filesize($_FILES['photodp']['tmp_name']);
			if ($size > MAX_SIZE*1024)
			{echo ("vérifié la taille de image");
 
				exit ("verifier la taille de votre image!!");
				$errors=1;
			}
			$extension 	= 	getExtension($filename);
			$extension 	= 	strtolower($extension);
			if($extension=="jpg" || $extension=="jpeg" )
			{
				$uploadedfile 	= 	$_FILES['photodp']['tmp_name'];
				$src 			= 	imagecreatefromjpeg($uploadedfile);
			}
			else if($extension=="png")
			{
				$uploadedfile 	= 	$_FILES['photodp']['tmp_name'];
				$src 			= 	imagecreatefrompng($uploadedfile);
			}
			else 
				$src 	= 	imagecreatefromgif($uploadedfile);
 
			list($width,$height)	=	getimagesize($uploadedfile);
 
			$newwidth	=	640;
			$newheight	=	486;
			$tmp		=	imagecreatetruecolor($newwidth,$newheight);
 
			$newwidth1	=	140;
			$newheight1	=	93;
			$tmp1		=	imagecreatetruecolor($newwidth1,$newheight1);
 
 
			$newwidth2	=	300;
			$newheight2	=	300;
			$tmp2		=	imagecreatetruecolor($newwidth2,$newheight2);
 
 
			imagecopyresampled($tmp, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
 
			imagecopyresampled($tmp1, $src, 0, 0, 0, 0, $newwidth1, $newheight1, $width, $height);
 
			imagecopyresampled($tmp2, $src, 0, 0, 0, 0, $newwidth2, $newheight2, $width, $height);
 
			 $name = "xxx-com";
 
		$idcon = $_SESSION["id_user"];
        $dest_fichier = '' .time(). '' .$name. '.' .$extension;
		$filename 	= 	"upload/". $dest_fichier;
		$filename1 	= 	"upload/small_". $dest_fichier;
		$filename2 	= 	"upload/photodp_". $dest_fichier;
 
		$qu = "INSERT INTO albums(id,id_user,lien, miniature, photodp, type) VALUES ('', '$idcon','$filename','$filename1','$filename2','album')";
		$qus = $conn->query($qu);
			imagejpeg($tmp,$filename,100);
			imagejpeg($tmp1,$filename1,100);
			imagejpeg($tmp2,$filename2,100);
 
			imagedestroy($src);
			imagedestroy($tmp);
			imagedestroy($tmp1);
			imagedestroy($tmp2);
		}
	}
 
} else {
	echo("Mauvais fichier");
}
 
?>