/
get-img-podcast.php
73 lines (57 loc) · 2.4 KB
/
get-img-podcast.php
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
<?php
include ('includes/bdd_connect.php');
connexion ( 'webserv' );
/**
* Initialisation de toutes les constantes
*/
// DurŽe du cache (en secondes)
$expire = time () - 60 * 60 * 24;
//Dossier de cache
$img_dst_chemin = $_SERVER ['DOCUMENT_ROOT'] . "/cache/img/";
// Fichier par dŽfaut
$src_filename = "http://webserv.freepod.net/img/podcasts/default.png";
// Nom du fichier de cache
$dst_filename = "podcast" . $_GET ['id'] . "_" . $_GET['nom'] . "_" . $_GET['width'] . ".png";
// Emplacement du fichier de cache
$cache = $_SERVER ['DOCUMENT_ROOT'] . "/cache/img/" . $dst_filename;
// RŽcupŽration de l'URL de l'image
$query = "SELECT " . $_GET['nom'] . " FROM podcasts WHERE id = " . $_GET ['id'] . " LIMIT 1";
$sth = mysql_query ( $query );
while ( $r = mysql_fetch_row( $sth ) ) {
$src_filename = $r [0];
}
// Si le cache est encore valide
if (file_exists ( $cache ) && filemtime ( $cache ) > $expire) {
header("Location: http://webserv.freepod.net/cache/img/" . $dst_filename);
} else {
// DŽterminer l'extension ˆ partir du nom de fichier
$extension = substr( $src_filename, -3 );
// Afin de simplifier les comparaisons, on met tout en minuscule
$extension = strtolower( $extension );
if ($extension == "jpg" || $extension == "peg") {
$img_src_ressource = imagecreatefromjpeg( $src_filename);
$extension = "jpeg";
} else if ($extension == "gif") {
$img_src_ressource = imagecreatefromgif( $src_filename );
} else if ($extension == "png") {
$img_src_ressource = imagecreatefrompng( $src_filename );
}
// Exemple avec imagesx() et imagesy()
$img_src_width = imagesx( $img_src_ressource );
$img_src_height = imagesy( $img_src_ressource );
$width = $_GET['width'];
$height = ($img_src_height * $width) / $img_src_width;
echo $height;
//Pour crŽer une image de destination de 200 pixels de large sur 200 de haut
$img_dst_ressource = imagecreatetruecolor( $width, $height );
imagecopyresampled($img_dst_ressource, $img_src_ressource, 0, 0, 0, 0, $width, $height, $img_src_width, $img_src_height);
// VŽrifions tout d'abord que nous pouvons enregistrer le fichier
$handle = fopen( $img_dst_chemin . $dst_filename, "w" );
if ( !$handle ) {
echo "Impossible d'ecrire l'image. Verifiez le chemin, et les droits du serveur.";
exit;
}
fclose( $handle );
imagepng ($img_dst_ressource, $img_dst_chemin . $dst_filename);
header("Location: http://webserv.freepod.net/cache/img/" . $dst_filename);
}