1<?php 2/** 3 * @desc File per il caricamento dei file di guida per gli amministratori 4 * @package VFront 5 * @subpackage Administration 6 * @author M.Marcello Verona 7 * @copyright 2007-2010 M.Marcello Verona 8 * @version 0.96 $Id: add.docs.php 880 2010-12-14 12:43:47Z marciuz $ 9 * @license http://www.gnu.org/licenses/gpl.html GNU Public License 10 */ 11 12// Imposto l'esecuzione massima in 10 minuti 13ini_set('max_execution_time',600); 14 15include("./inc/conn.php"); 16include("./inc/layouts.php"); 17include("./inc/func.comuni.php"); 18include("./inc/func.frontend.php"); 19 20proteggi(2); 21 22 23/** 24 * @desc Funzione che cerca e sostituisce caratteri accentati ed altri caratteri non-standard 25 * @param string $nomefile Il nome del file 26 * @return string Il nome del file ripulito 27 */ 28function rinomina_file($nomefile){ 29 30 $nomefile=str_replace(array('�','�','�','�','�','�'), 31 array('a','e','e','o','i','u'), 32 $nomefile); 33 34 $nomefile=preg_replace("'[^\w-.]+'","_",trim($nomefile)); 35 36 return $nomefile; 37 38} 39 40/** 41 * @desc Funzione per la verifica del MIME del file 42 * @param string $nomefile Il nome del file 43 * @param string $header_file Header del file 44 * @todo Funzione da scrivere ancora. 45 * @return bool 46 */ 47function verifica_tipo_file($nomefile,$header_file){ 48 49 50 return true; 51 52} 53 54 55 56 57 58/** 59 * @desc Mostra un'immagine a seconda dell'estensione del file 60 * @param string $nomefile Il nome del file 61 * @return string HTML IMG 62 */ 63function img_filetype($nomefile){ 64 65 switch (substr($nomefile,-4,4)){ 66 67 case '.pdf': $mime='pdf.gif'; $alt='pdf'; break; 68 case '.doc': $mime='doc.gif'; $alt='documento Word'; break; 69 case '.xls': $mime='xls.gif'; $alt='foglio di calcolo Excel'; break; 70 case '.zip': $mime='zip.gif'; $alt='file compresso zip'; break; 71 default : $mime='generic.gif'; $alt='file'; break; 72 73 74 } 75 76 77 return "<img src=\"img/mime/$mime\" alt=\"$alt\" />"; 78 79} 80 81 82 83/** 84 * Funzione che determina la dimensione di un file allegato 85 * 86 * @param int $id_file 87 * @return string 88 */ 89function allegato_filesize($id_file){ 90 91 $file = _PATH_ATTACHMENT."/$id_file.dat"; 92 93 if(file_exists($file)){ 94 95 $size = filesize($file); 96 97 if($size>1024){ 98 99 return round($size/1024)." Kb"; 100 } 101 else{ 102 return $size." bytes"; 103 } 104 } 105 else return _('Size not available, file not found'); 106} 107 108 109###################################################################### 110# 111# CASO ELIMINA ALLEGATO 112# 113 114 115if(isset($_GET['del'])){ 116 117 $id_da_eliminare=str_replace(_BASE64_PASSFRASE,'',base64_decode($_GET['del'])); 118 119 $id_da_eliminare=intval($id_da_eliminare); 120 121 // elimino dal DB 122 $q_del=$vmsql->query("DELETE FROM "._TABELLA_ALLEGATO." WHERE codiceallegato=$id_da_eliminare"); 123 124 $test_del_db= ($vmsql->affected_rows($q_del)==1) ? true:false; 125 126 127 // elimino dal filesystem 128 $test_del_fs=unlink(_PATH_ATTACHMENT."/$id_da_eliminare.dat"); 129 130 if($test_del_db && $test_del_fs){ 131 header("Location: ".$_SERVER['PHP_SELF']."?t=".$_GET['t']."&id=".$_GET['id']."&az=del&feed=ok"); 132 133 } 134 else{ 135 header("Location: ".$_SERVER['PHP_SELF']."?t=".$_GET['t']."&id=".$_GET['id']."&az=del&feed=ko"); 136 } 137 138 exit; 139} 140 141 142# 143# 144###################################################################### 145 146 147 148 149 150####################################################################### 151# 152# CASO UPLOAD ESEGUITO 153# 154 155if(count($_FILES)>0){ 156 157 158 // variabile per il test finale 159 $success=0; 160 $tipo_errori_up= array(); 161 162 // CICLO SUI FILES 163 for($i=0;$i<count($_FILES['gfile']['tmp_name']);$i++){ 164 165 // test sulla correttezza dell'upload 166 if(is_file($_FILES['gfile']['tmp_name'][$i]) && $_FILES['gfile']['error'][$i]==0){ 167 168 $nome_pulito = rinomina_file($_FILES['gfile']['name'][$i]); 169 } 170 else{ 171 $tipo_errori_up[$i]='generico di upload'; 172 continue; 173 } 174 175 176 // Test sul tipo di file 177 if(!verifica_tipo_file($nome_pulito,$_FILES['gfile']['type'][$i])){ 178 $tipo_errori_up[$i]=_('file type not allowed (see allowed types)'); 179 continue; 180 } 181 182 183 // INSERISCE IN DATABASE 184 185 $sql_ins=sprintf("INSERT INTO "._TABELLA_ALLEGATO." 186 (tipoentita,codiceentita,nomefileall,descroggall,autoreall,lastdata) 187 VALUES ('%s','%s','%s','%s','%s','%s')", 188 $_POST['t'], 189 $_POST['id'], 190 $nome_pulito, 191 '', 192 ucfirst($_SESSION['user']['nome'])." ".ucfirst($_SESSION['user']['cognome']), 193 date('Y-m-d H:i:s') 194 ); 195 196 197 $q_ins=$vmsql->query($sql_ins); 198 199 $id_ultimo=$vmsql->insert_id(_TABELLA_ALLEGATO,'codiceallegato'); 200 201 $test_move=move_uploaded_file($_FILES['gfile']['tmp_name'][$i],_PATH_ATTACHMENT."/$id_ultimo.dat"); 202 203 if($test_move){ 204 205 $success++; 206 } 207 else{ 208 $tipo_errori_up[$i]=_('it is not possible to upload the file in the folder'); 209 continue; 210 } 211 212 213 214 } 215 216 if($success==count($_FILES['gfile']['tmp_name'])){ 217 218 header("Location: ".$_SERVER['PHP_SELF']."?t=".$_POST['t']."&id=".$_POST['id']."&feed=ok"); 219 } 220 else{ 221 header("Location: ".$_SERVER['PHP_SELF']."?t=".$_POST['t']."&id=".$_POST['id']."&feed=ko&msg=".implode("|",$tipo_errori_up)); 222 } 223 224 exit; 225} 226######################################################################## 227 228 229 230 231 232 233 234 235 236 237 238 239 240######################################################################## 241# 242# VISTA PAGINA - QUERY DI RICERCA ALLEGATI 243# 244 245 246 247$d = dir(_PATH_ATTACHMENT."/docs"); 248 249while (false !== ($entry = $d->read())) { 250 251 if($entry!='.' && $entry!='..') $FILE_PRESENTI[]=$entry; 252} 253$d->close(); 254 255 256 257 258 259 260 261 262 263 264$files = array('sty/linguette.css','js/uploadprogress/BytesUploaded.js','js/uploadprogress/LoadVars.js','js/clona_attach.js','sty/attach.css'); 265 266$INIZIO_LAYOUT= openLayout1("Allegati",$files); 267 268echo str_replace("<body>","<body onload=\"self.focus();\">",$INIZIO_LAYOUT); 269 270echo "<h1 style=\"font-size:1.6em;\">".sprintf(_('Attachments for record %s in table'),"<span style=\"color:#666;\">".$_GET['id']."</span>")." <span class=\"var\">".$_GET['t']."</span></h1>"; 271 272echo "<img src=\"./img/flussi.gif\" class=\"img-float\" alt=\""._('Manage attachments ')."\" />\n"; 273 274 275 276 277 echo " 278 <script type=\"text/javascript\"> 279 280 $JS_aggiorna 281 282 var nuoviAllegati=0; 283 284 var bUploaded = new BytesUploaded('whileuploading.php',500); 285 286 var divs = new Array('allegati','nuoviallegati'); 287 288 289 function eti(ido){ 290 291 for (var i in divs){ 292 document.getElementById('cont-eti-'+divs[i]).style.display='none'; 293 document.getElementById('li-'+divs[i]).className='disattiva'; 294 } 295 296 // attiva il selezionato 297 document.getElementById('cont-eti-'+ido).style.display=''; 298 document.getElementById('li-'+ido).className='attiva'; 299 300 } 301 302 303 </script> 304 "; 305 306 307 echo " 308<div id=\"contenitore-variabili\"> 309 <div id=\"box-etichette\"> 310 311 <ul class=\"eti-var-gr\"> 312 313 314 <li onclick=\"eti('allegati');\" id=\"li-allegati\" class=\"attiva\">"._('Attachments')."</li> 315 ", ($allegati_ins) ? "<li onclick=\"eti('nuoviallegati');\" id=\"li-nuoviallegati\" class=\"disattiva\">"._('Add attachment')."</li>" : ""," 316 317 </ul> 318 319 </div>"; 320 321 322 // opzione scarica tutti 323 if($num_allegati>=2){ 324 325 $link_scarica_tutti=" - <a href=\"download.php?type=all&idr=".base64_encode($matrice_info_allegati[0]['codiceallegato']._BASE64_PASSFRASE)."\">"._('Download all attachments')."</a>"; 326 } 327 else{ 328 $link_scarica_tutti=''; 329 } 330 331 // LINGUETTA NUOVO FLUSSO 332 echo " 333 <div class=\"cont-eti\" id=\"cont-eti-allegati\" > 334 335 <p>"._('Attachments for this record:')." <strong>$num_allegati</strong> $link_scarica_tutti</p> 336 337 <hr class=\"light2\" /> 338 "; 339 340 341 // MOSTRA GLI ALLEGATI 342 for($i=0;$i<count($matrice_info_allegati);$i++){ 343 344 $dimensione = allegato_filesize($matrice_info_allegati[$i]['codiceallegato']); 345 346 $scarica=(preg_match('!Dimensione!',$dimensione)) ? "": " - <a href=\"download.php?f=".base64_encode($matrice_info_allegati[$i]['codiceallegato']._BASE64_PASSFRASE)."\">Scarica</a>"; 347 $elimina=($allegati_del) ? " - <span class=\"fakelink-rosso\" onclick=\"if(confirm('"._('Are you sure you want to delete this attachment?')."')){ window.location='".$_SERVER['PHP_SELF']."?t=$tabella&id=$id&del=".base64_encode($matrice_info_allegati[$i]['codiceallegato']._BASE64_PASSFRASE)."';}\" >"._('Delete')."</span>" : ""; 348 349 $estensione=substr($matrice_info_allegati[$i]['nomefileall'],-3,3); 350 351 if($estensione=='gif' || $estensione=='jpg' || $estensione=='png'){ 352 353 $immagine='<img src="thumb.php?id='.$matrice_info_allegati[$i]['codiceallegato'].'" alt="'.$matrice_info_allegati[$i]['nomefileall'].'" class="thumb" />'; 354 } 355 else{ 356 357 $immagine = img_filetype($matrice_info_allegati[$i]['nomefileall']); 358 } 359 360 echo " 361 <div class=\"allegato\"> 362 <div class=\"allegato-img\">".$immagine."</div> 363 <div class=\"allegato-info\"> 364 <strong>".$matrice_info_allegati[$i]['nomefileall']."</strong><br /> 365 $dimensione $scarica $elimina 366 367 </div> 368 </div>\n"; 369 } 370 371 372 373 374 echo " 375 </div> 376 "; 377 378 379 // LINGUETTA AMMINISTRAZIONE FLUSSI 380 if($allegati_ins){ 381 echo " 382 <div class=\"cont-eti\" id=\"cont-eti-nuoviallegati\" style=\"display:none;\"> 383 <br /> 384 "; 385 ?> 386 <form enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" onsubmit="bUploaded.start('fileprogress');"> 387 <div> 388 <div id="contenitore-file"><div><input type="file" name="gfile[]" size="60" /> <span onclick="rimuovi_attach(this);" class="fakelink" style="font-size:0.7em;"><?php echo _('remove');?></span><br /></div></div> 389 390 <span onclick="clona_attach();" class="fakelink"><?php echo _('Add another file');?></span><br /><br /><br /> 391 392 393 <input type="hidden" name="t" value="<?php echo $tabella;?>" /> 394 <input type="hidden" name="id" value="<?php echo $id;?>" /> 395 396 <input type="submit" name="aggiungi" value=" <?php echo _('Send');?> " onclick="submit();this.value='<?php echo _('Please wait...');?>';this.disabled=true;" /> 397 398 </div> 399 </form> 400 <div id="fileprogress" style="font-weight: bold;"> </div> 401 402<?php 403 404 echo "</div>\n"; 405 } // -- fine clausola nuovi inserimenti 406 407echo "</div><!-- fine contenitore -->\n\n"; 408 409 410 411 412echo closeLayout1(); 413?>