Source for file add.attach.php
Documentation is available at add.attach.php
* Finestra per la gestione degli allegati dalla scheda
* Viene aperta in popup dal file {@link scheda.php}
* @author Mario Marcello Verona <marcelloverona@gmail.com>
* @copyright 2007 Mario Marcello Verona
* @license http://www.gnu.org/licenses/gpl.html GNU Public License
// Imposto l'esecuzione massima in 10 minuti
include("./inc/conn.php");
include("./inc/layouts.php");
include("./inc/func.comuni.php");
include("./inc/func.frontend.php");
include("./inc/func.var_frontend.php");
* Permette di modificare il nome di un file eliminando i caratteri accentati latin1 e
* sostituendo ciò che non è lettere, numeri o trattini con il carattere underscore
* @param string $nomefile
* @return string Nome del file senza caratteri accenti o spazi
array('a','e','e','o','i','u'),
* Controlla la tipologia dei file mediante la lettura delle estensioni
* ed il confronto con le estensioni permesse nella variabile "formati_attach"
* @param string $nomefile
* @param string $header_file
* @todo Impostare un controllo mediante la lettura del MIME del file
if(!isset ($GLOBALS['_VARIABILI'])){
$estensioni_accettate= explode(",",$GLOBALS['_VARIABILI']['formati_attach']);
foreach($estensioni_accettate as $k=> $v) $estensioni_accettate[$k]= trim($v);
// var_dump($estensioni_accettate);
return (in_array($infofile['extension'],$estensioni_accettate)) ? true: false;
* Funzione per la determinazione del tipo di file immagine mediante il nome e l'estensione
* Restituisce una icona con il tipo (se presente nei casi descritti)
* @param string $nomefile
switch (substr($nomefile,- 4,4)){
case '.pdf': $mime= 'pdf.gif'; $alt= 'pdf'; break;
case '.doc': $mime= 'doc.gif'; $alt= 'documento Word'; break;
case '.xls': $mime= 'xls.gif'; $alt= 'foglio di calcolo Excel'; break;
case '.zip': $mime= 'zip.gif'; $alt= 'file compresso zip'; break;
default : $mime= 'generic.gif'; $alt= 'file'; break;
return "<img src=\"img/mime/$mime\" alt=\"$alt\" />";
* Funzione che determina la dimensione di un file allegato
return round($size/ 1024). " Kb";
else return 'Dimensione non disponibile, il file sembra inesistente';
######################################################################
$id_da_eliminare= intval($id_da_eliminare);
// elimino dal filesystem
if($test_del_db && $test_del_fs){
header("Location: ". $_SERVER['PHP_SELF']. "?t=". $_GET['t']. "&id=". $_GET['id']. "&az=del&feed=ok");
header("Location: ". $_SERVER['PHP_SELF']. "?t=". $_GET['t']. "&id=". $_GET['id']. "&az=del&feed=ko");
######################################################################
#######################################################################
// variabile per il test finale
$tipo_errori_up= array();
for($i= 0;$i< count($_FILES['gfile']['tmp_name']);$i++ ){
// test sulla correttezza dell'upload
if(is_file($_FILES['gfile']['tmp_name'][$i]) && $_FILES['gfile']['error'][$i]== 0){
$tipo_errori_up[$i]= 'generico di upload';
$tipo_errori_up[$i]= 'tipo di file non accettato (le estensioni possibili sono: '. str_replace(",",", ",$GLOBALS['_VARIABILI']['formati_attach']). ')';
(tipoentita,codiceentita,nomefileall,descroggall,autoreall,lastdata)
VALUES ('%s','%s','%s','%s','%s','%s')",
ucfirst($_SESSION['user']['nome']). " ". ucfirst($_SESSION['user']['cognome']),
$tipo_errori_up[$i]= 'caricamento file nella cartella impossibile';
if($success== count($_FILES['gfile']['tmp_name'])){
header("Location: ". $_SERVER['PHP_SELF']. "?t=". $_POST['t']. "&id=". $_POST['id']. "&feed=ok");
header("Location: ". $_SERVER['PHP_SELF']. "?t=". $_POST['t']. "&id=". $_POST['id']. "&feed=ko&msg=". implode("|",$tipo_errori_up));
########################################################################
########################################################################
# VISTA PAGINA - QUERY DI RICERCA ALLEGATI
// L'utente ha cliccato su allegato quando ancora il record non era salvato..
$msg= "La corretta procedura per allegare file, prevede prima il salvataggio del nuovo record e solo allora il caricamento di file allegati.";
openErrorGenerico('Impossibile allegare file prima di salvare il nuovo record',false,$msg,'popup');
$msg= "Si è in fase di ricerca. Eseguire o annullare la ricerca prima di inserire allegati.";
openErrorGenerico('Impossibile allegare file in modalità ricerca',false,$msg,'popup');
// PRENDI IMPOSTAZIONI ALLEGATI PER TABELLA/REGISTO
FROM {$db1['frontend']}.registro_tab
WHERE table_name='$tabella'
AND gid=". $_SESSION['gid'],$link);
// CERCA ALLEGATI PER QUESTA TABELLA
WHERE tipoentita='$tabella'
ORDER BY nomefileall, lastdata",$link);
$files = array('sty/linguette.css','js/uploadprogress/BytesUploaded.js','js/uploadprogress/LoadVars.js','js/clona_attach.js','sty/attach.css');
$INIZIO_LAYOUT= openLayout1("Allegati",$files,'popup');
echo str_replace("<body>","<body onload=\"window.focus();\">",$INIZIO_LAYOUT);
echo "<h1 style=\"font-size:1.6em;\">Allegati per record <span style=\"color:#666;\">". $_GET['id']. "</span> della tabella <span class=\"var\">". $_GET['t']. "</span></h1>";
echo "<img src=\"./img/flussi.gif\" class=\"img-float\" alt=\"gestione allegati\" />\n";
$JS_aggiorna= (isset ($_GET['feed']) && $_GET['feed']== 'ok') ? 'window.opener.richiediAL();' : "";
<script type=\"text/javascript\">
var bUploaded = new BytesUploaded('whileuploading.php',500);
var divs = new Array('allegati','nuoviallegati');
document.getElementById('cont-eti-'+divs[i]).style.display='none';
document.getElementById('li-'+divs[i]).className='disattiva';
document.getElementById('cont-eti-'+ido).style.display='';
document.getElementById('li-'+ido).className='attiva';
if(isset ($_GET['feed']) && $_GET['feed']== 'ko'){
echo "<p><strong>Attenzione!</strong><br />\n$messaggi</p>\n";
<div id=\"contenitore-variabili\">
<div id=\"box-etichette\">
<ul class=\"eti-var-gr\">
<li onclick=\"eti('allegati');\" id=\"li-allegati\" class=\"attiva\">Allegati presenti</li>
", ($allegati_ins) ? "<li onclick=\"eti('nuoviallegati');\" id=\"li-nuoviallegati\" class=\"disattiva\">Inserisci allegati</li>" : "","
$link_scarica_tutti= " - <a href=\"download.php?type=all&idr=". base64_encode($matrice_info_allegati[0]['codiceallegato']. _BASE64_PASSFRASE). "\">Scarica tutti gli allegati</a>";
// LINGUETTA NUOVO FLUSSO
<div class=\"cont-eti\" id=\"cont-eti-allegati\" >
<p>Allegati presenti per questo record: <strong>$num_allegati</strong> $link_scarica_tutti</p>
for($i= 0;$i< count($matrice_info_allegati);$i++ ){
$scarica= (ereg('Dimensione',$dimensione)) ? "": " - <a href=\"download.php?f=". base64_encode($matrice_info_allegati[$i]['codiceallegato']. _BASE64_PASSFRASE). "\">Scarica</a>";
$elimina= ($allegati_del) ? " - <span class=\"fakelink-rosso\" onclick=\"if(confirm('Vuoi davvero cancellare questo allegato?')){ window.location='". $_SERVER['PHP_SELF']. "?t=$tabella&id=$id&del=". base64_encode($matrice_info_allegati[$i]['codiceallegato']. _BASE64_PASSFRASE). "';}\" >Elimina</span>" : "";
$estensione= substr($matrice_info_allegati[$i]['nomefileall'],- 3,3);
if($estensione== 'gif' || $estensione== 'jpg' || $estensione== 'png' ||
$estensione== 'GIF' || $estensione== 'JPG' || $estensione== 'PNG'){
$immagine= '<img src="thumb.php?id='. $matrice_info_allegati[$i]['codiceallegato']. '" alt="'. $matrice_info_allegati[$i]['nomefileall']. '" class="thumb" /><div style="clear:both"> </div>';
$immagine = img_filetype($matrice_info_allegati[$i]['nomefileall']);
<div class=\"allegato-img\">". $immagine. "</div>
<div class=\"allegato-info\">
<strong>". $matrice_info_allegati[$i]['nomefileall']. "</strong><br />
$dimensione $scarica $elimina
// LINGUETTA AMMINISTRAZIONE FLUSSI
<div class=\"cont-eti\" id=\"cont-eti-nuoviallegati\" style=\"display:none;\">
<form enctype="multipart/form-data" method="post" action=" <?php echo $_SERVER['PHP_SELF'];?>" onsubmit="bUploaded.start('fileprogress');">
<div id="contenitore-file"><div><input type="file" name="gfile[]" size="60" /> <span onclick="rimuovi_attach(this);" class="fakelink" style="font-size:0.7em;">rimuovi</span><br /></div></div>
<span onclick="clona_attach();" class="fakelink">Aggiungi un altro file</span><br /><br /><br />
<input type="hidden" name="t" value=" <?php echo $tabella;?>" />
<input type="hidden" name="id" value=" <?php echo $id;?>" />
<input type="submit" name="aggiungi" value=" Invia " onclick="submit();this.value='Attendere, prego';this.disabled=true;" />
<div id="fileprogress" style="font-weight: bold;"> </div>
} // -- fine clausola nuovi inserimenti
echo "</div><!-- fine contenitore -->\n\n";
|