forked from broncowdd/BoZoN
-
Notifications
You must be signed in to change notification settings - Fork 0
/
listfiles.php
129 lines (111 loc) · 4.63 KB
/
listfiles.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
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php
/**
* BoZoN list files script:
* just list the files in the upload directory (with the filter if needed)
* @author: Bronco ([email protected])
**/
if (!function_exists('store')){include('core.php');}
// Configuration
$auto_thumb['default_width']='64';
$auto_thumb['default_height']='64';
$auto_thumb['dont_try_to_resize_thumbs_files']=true;
function auto_thumb($img,$width=null,$height=null,$add_to_thumb_filename='_THUMB_',$crop_image=true){
### VERSION MODIFIEE POUR BOZON ###
// initialisation
$DONT_RESIZE_THUMBS=true;
global $auto_thumb;
if (!$width){$width=$auto_thumb['default_width'];}
if (!$height){$height=$auto_thumb['default_height'];}
$recadrageX=0;$recadrageY=0;
$motif='#\.(jpe?g|png|gif)#i'; // Merci à JéromeJ pour la correction !
$rempl=$add_to_thumb_filename.'_'.$width.'x'.$height.'.$1';
$thumb_name='thumbs/'.basename(preg_replace($motif,$rempl,$img));
// sortie prématurée:
if (!file_exists($img)){return 'auto_thumb ERROR: '.$img.' doesn\'t exists';}
if (file_exists($thumb_name)){return $thumb_name;} // miniature déjà créée
if ($add_to_thumb_filename!='' && preg_match($add_to_thumb_filename,$img) && $DONT_RESIZE_THUMBS){return false;} // on cherche à traiter un fichier miniature (rangez un peu !)
// redimensionnement en fonction du ratio
$taille = getimagesize($img);
$src_width=$taille[0];
$src_height=$taille[1];
if (!$crop_image){
// sans recadrage: on conserve les proportions
if ($src_width<$src_height){
// portrait
$ratio=$src_height/$src_width;
$width=$height/$ratio;
}else if ($src_width>$src_height){
// paysage
$ratio=$src_width/$src_height;
$height=$width/$ratio;
}
}else{
// avec recadrage: on produit une image aux dimensions définies mais coupée
if ($src_width<$src_height){
// portrait
$recadrageY=round(($src_height-$src_width)/2);
$src_height=$src_width;
}else if ($src_width>$src_height){
// paysage
$recadrageX=round(($src_width-$src_height)/2);
$src_width=$src_height;
}
}
// en fonction de l'extension
$fichier = pathinfo($img);
$extension=str_ireplace('jpg','jpeg',$fichier['extension']);
$fonction='imagecreatefrom'.$extension;
$src = $fonction($img); // que c'est pratique ça ^^ !
// création image
$thumb = imagecreatetruecolor($width,$height);
// gestion de la transparence
// (voir fonction de Seebz: http://code.seebz.net/p/imagethumb/)
if( $extension=='png' ){imagealphablending($thumb,false);imagesavealpha($thumb,true);}
if( $extension=='gif' && @imagecolortransparent($img)>=0 ){
$transparent_index = @imagecolortransparent($img);
$transparent_color = @imagecolorsforindex($img, $transparent_index);
$transparent_index = imagecolorallocate($thumb, $transparent_color['red'], $transparent_color['green'], $transparent_color['blue']);
imagefill($thumb, 0, 0, $transparent_index);
imagecolortransparent($thumb, $transparent_index);
}
imagecopyresampled($thumb,$src,0,0,$recadrageX,$recadrageY,$width,$height,$src_width,$src_height);
imagepng($thumb, $thumb_name);
imagedestroy($thumb);
return $thumb_name;
}
if (empty($mask)){$mask='*';}else{$mask='*'.$mask.'*';}
$liste=glob(UPLOAD_PATH.$mask);
if ($index=array_search('index.html', $liste)){unset($liste[$index]);}
$ids=unstore(ID_FILE);
$save=false;
if (count($liste)>1){
$files=array_flip($ids);
foreach ($liste as $fichier){
$nom=basename($fichier);
if ($nom!='index.html'&&empty($files[$nom])){
// generates the file ID if not present
$id=uniqid(true);
$ids[$id]=$nom;
$save=true;
}
if ($nom!='index.html'&&!empty($files[$nom])){
$taille=round(filesize($fichier)/1024,2);
$id=$files[$nom];
$extension=strtolower(pathinfo($fichier,PATHINFO_EXTENSION));
if ($extension=='gif'||$extension=='jpg'||$extension=='jpeg'||$extension=='png'){
echo '<li class="'.$extension.'"><a class="close" href="#" onclick="d(\''.$id.'\');"> </a><a href="index.php?f='.$id.'" ><img src="" style="background:url('.auto_thumb($fichier,64,64).');"/></a><em>'.$taille.' ko</em><em>'.$nom.'</em></li>';
}else{
echo '<li class="'.$extension.'"><a class="close" href="#" onclick="d(\''.$id.'\');"> </a><a href="index.php?f='.$id.'"><img class="'.$extension.'" src=""/></a><em>'.$taille.' ko</em><em>'.$nom.'</em></li>';
}
}
}
if ($save){store(ID_FILE,$ids);} // save in case of new files
}else{e('No file on the server');}
?>
<script>
function d(id){
if (confirm("<?php e('Delete this file ?');?>")){
document.location.href="admin.php?del="+id+'&token=<?php newToken(true);?>';
}
}
</script>