bonjour,
je realise un site de petite annonce et comme on m'a indiquer que je devrait uploader mes images j ai créer une base sql pour garder les donnée de la photo.
J'ai trouver donc ce script qui marche nikel pour uploader les images:
et je veux redimensionner pour qu'il soit moins lourd j ai donc trouver cette fonction:
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 traiter.php <?php include(redimage.php); if( isset($_POST['upload']) ) // si formulaire soumis { $content_dir = 'uploads/'; // dossier où sera déplacé le fichier $tmp_file = $_FILES['fichier']['tmp_name']; if( !is_uploaded_file($tmp_file) ) { exit("Le fichier est introuvable"); } // on vérifie maintenant l'extension $type_file = $_FILES['fichier']['type']; if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') ) { exit("Le fichier n'est pas une image"); } // on copie le fichier dans le dossier de destination $name_file = $_FILES['fichier']['name']); if( preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) ) { exit("Nom de fichier non valide"); } else if( !move_uploaded_file($tmp_file, $content_dir . $name_file) ) { exit("Impossible de copier le fichier dans $content_dir"); } echo "Le fichier a bien été uploadé"; } ?>
redimage.php:
mais je ne sais pas ou appeller la fonction dans ma page traiter.php.
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 <?PHP function redimage($img_src,$img_dest,$dst_w,$dst_h) { // Lit les dimensions de l'image $size = GetImageSize($img_src); $src_w = $size[0]; $src_h = $size[1]; // Teste les dimensions tenant dans la zone $test_h = round(($dst_w / $src_w) * $src_h); $test_w = round(($dst_h / $src_h) * $src_w); // Si Height final non précisé (0) if(!$dst_h) $dst_h = $test_h; // Sinon si Width final non précisé (0) elseif(!$dst_w) $dst_w = $test_w; // Sinon teste quel redimensionnement tient dans la zone elseif($test_h>$dst_h) $dst_w = $test_w; else $dst_h = $test_h; // La vignette existe ? $test = (file_exists($img_dest)); // L'original a été modifié ? if($test) $test = (filemtime($img_dest)>filemtime($img_src)); // Les dimensions de la vignette sont correctes ? if($test) { $size2 = GetImageSize($img_dest); $test = ($size2[0]==$dst_w); $test = ($size2[1]==$dst_h); } // Créer la vignette ? if(!$test) { // Crée une image vierge aux bonnes dimensions // $dst_im = ImageCreate($dst_w,$dst_h); $dst_im = ImageCreateTrueColor($dst_w,$dst_h); // Copie dedans l'image initiale redimensionnée $src_im = ImageCreateFromJpeg($img_src); // ImageCopyResized($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h); ImageCopyResampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h); // Sauve la nouvelle image ImageJpeg($dst_im,$img_dest); // Détruis les tampons ImageDestroy($dst_im); ImageDestroy($src_im); } } ?>
et le formulaire:
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 <form method="post" enctype="multipart/form-data" action="traiter.php"> <p> <input type="file" name="fichier" size="30"> <input type="submit" name="upload" value="Uploader"> </p> merci de votre aide de plus comment l' inserer dans la base avec ces information la:</form>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1234567891011 CREATE TABLE IF NOT EXISTS `image` ( `up_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `up_filename` varchar(19) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, `up_filesize` int(10) unsigned DEFAULT '0', `up_title` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, `up_description` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, `up_finalname` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, `up_filedate` datetime DEFAULT NULL, `up_mid` int(5) DEFAULT '0', PRIMARY KEY (`up_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
merci encore de votre aide qui j espéré m aideront.
Partager