Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Controllo automatico informazioni files

    Salve gente, ho fatto una ricerca sul forum ma non son riuscito a beccare una discussione simile alla mia.

    Mi servirebbe di sapere se con PHP sia possibile trarre dai files di una determinata cartella sul server, informazioni quali "Autore", "Titolo", "Oggetto" e balle varie, in modo da utilizzarle a mio piacimento.

    Per essere più chiaro. Se la funzione "filesize()" ritorna il peso del file, e la funzione "getimagesize()" le dimensioni di un'immagine, è possibile trarre anche le informazioni che ho scritto prima?

    Grazie dell'attenzione.

  2. #2
    Un altro problema!

    La mia pagina (che fa una lista dei files presenti in una sottocartella), quando incontra dei files di grande dimensione, va lentissima!

    Posto il codice:
    codice:
    function human_file_size($size)
    {
       $filesizename = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
       return round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $filesizename[$i];
    }
    $cont=0;
    $rep=opendir('./files'); 
    $fold = getcwd();
    $fold_array = explode("\\",$fold);
    $titolo = array_pop($fold_array);
    
    echo "<table><tr><td>[img]../img/logo.gif[/img]</td>";
    echo "<td>Centro download
    ";
    echo "Cliente:".$titolo."
    </td></tr></table>";
    echo "
    
    Istruzioni: per scaricare il file clicca con il pulsante destro sul nome del file e scegli 'salva oggetto con nome'</p>";
    echo "<table width='100%'><tr><td></td><td>File</td><td>Dimensione</td></tr>";
    while ($file = readdir($rep)) {
    	if($file != '..' && $file !='.' && $file !=''){ 
    		if (is_dir($file)){
    			echo "    ";
    			echo "$file";
    			echo "
    ";
    		}
    		else {
    			$cont++;
    			$file2 = 'files/'.$file;
    			$dim = human_file_size(filesize($file2));
    			$size = getimagesize($file2);
    			echo "<tr><td width='20'>".$cont.".</td>";
    			if ($size[0]!="")
    				echo "<td width='20%'>".$file."</td><td>".$dim." - ".$size[0]." x ".$size[1]." px</td></tr>";
    			else
    				echo "<td width='20%'>".$file."</td><td>".$dim."</td></tr>";
    		}
    	}
    }
    echo "</table>";
    closedir($rep);
    clearstatcache();
    Che mi dite?

  3. #3
    Ho scoperto che il rallentamento avviene col "getimagesize"..

    Ecco quindi la soluzione. Controllo l'estensione del file prima di fare il "getimagesize":
    codice:
    <?php
    function human_file_size($size)
    {
       $filesizename = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
       return round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $filesizename[$i];
    }
    $cont=0;
    $rep=opendir('./files'); 
    $fold = getcwd();
    $fold_array = explode("\\",$fold);
    $titolo = array_pop($fold_array);
    $estensioni=array('gif','jpg','bmp'); 
    
    echo "<table><tr><td>[img]../img/logo.gif[/img]</td>";
    echo "<td>Centro download
    ";
    echo "Cliente:".$titolo."
    </td></tr></table>";
    echo "
    
    Istruzioni: per scaricare il file clicca con il pulsante destro sul nome del file e scegli 'salva oggetto con nome'</p>";
    echo "<table width='100%'><tr><td></td><td>File</td><td>Dimensione</td></tr>";
    while ($file = readdir($rep)) {
    	if($file != '..' && $file !='.' && $file !=''){ 
    		if (is_dir($file)){
    			echo "    ";
    			echo "$file";
    			echo "
    ";
    		}
    		else {
    			$cont++;
    			$file2 = 'files/'.$file;
    			$dim = human_file_size(filesize($file2));
    			
    			echo "<tr><td width='20'>{$cont}.</td>";
    			
    			for($i=0;$i<count($estensioni);$i++){
    				$estensione=substr($file2,(strlen($file2)-3),strlen($file2));
    				if(in_array($estensione,$estensioni)){
    					$size = getimagesize($file2);
    					$image = true;
    				}
    				else
    					$image = false;
    			}
    			if($image)
    				echo "<td width='20%'>{$file}</td><td>{$dim} - {$size[0]} x {$size[1]} px</td></tr>";
    			else
    				echo "<td width='20%'>{$file}</td><td>{$dim}</td></tr>";	
    		}
    	}
    }
    echo "</table>";
    closedir($rep);
    clearstatcache();
    ?>
    Spero possa essere utile a qualcuno.

    Resta il fatto che mi servono informazioni riguardo al primo post del thread, grazie!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.