Buonasera a tutti,

ho realizzato uno script che mi permette di caricare file sul server e contemporaneamente scrive alcune informazioni (timestamp dell'upload, dimensioni del file, ecc.) in una tabellina MySQL.

Codice PHP:
<?php
if(isset($_POST['invia']))
{

//Imposto la cartella dove verranno salvati i file
$cartella "../docs/";
$basename basename$_FILES['file']['name'] );
$percorso $cartella $basename;
chmod($cartella0755);

//Recupero le informazioni del Form
$titolo $_POST['titolo'];
$sezione $_POST['sezione'];
$file = ($_FILES['file']['name']);

// Mi connetto al Database
include('../dbconn.php');

// Controllo se ci sono stati problemi nell'upload del file
if(!isset($_FILES['file']) OR $_FILES['file']['size'] == OR $_FILES['file']['error'] != UPLOAD_ERR_OK)
die(
"<div align=\"center\"> Non è stato scelto nessun file da caricare. <a href=\"javascript:history.go(-1)\">Riprova cliccando qui </a> </div> 

"
);

// Controllo che il titolo non sia vuoto
if($titolo==null)
die(
"<div align=\"center\"> Attenzione! Non è stato inserito nessun titolo. <a href=\"javascript:history.go(-1)\">Riprova cliccando qui </a> </div> 

"
);

// Controllo che sia stata scelta una sezione
if($sezione==XX)
die(
"<div align=\"center\"> Attenzione! Non è stata scelta la sezione dove caricare il materiale. <a href=\"javascript:history.go(-1)\">Riprova cliccando qui</a> </div> 

"
);

// Controllo che il file sia un PDF
if ($_FILES['file']['type'] != "application/pdf")
die(
"<div align=\"center\"> Formato file non valido, è permesso solo il formato PDF. <a href=\"javascript:history.go(-1)\">Riprova cliccando qui </a> </div> 

"
);
    
// Scrivo il nome del file tutto in minuscolo e tolgo gli eventuali spazi
$file strtolower($file);
$file str_replace(" ""_"$file);

    
// Controllo che il file non sia già stato caricato
    
$file_esiste mysql_query("SELECT * FROM file WHERE file = \"$file\"") or die('Query non valida: ' mysql_error());
    
$righe mysql_num_rows($file_esiste);
    if (
$righe!=0)
    die(
"<div align=\"center\"> Esiste già un file con lo stesso nome. Verifica se è sia già stato effettivamente caricato o eventualmente cambia nome al file. 
 <a href=\"javascript:history.go(-1)\">Riprova cliccando qui </a> </div> 

"
);
    
//Scrivo le informazioni recuperate nel DB
$query "INSERT INTO file SET
            titolo = '
$titolo',
            sezione = '
$sezione',
            file = '
$file'";
mysql_query($query)
OR die(
'Query non valida: ' mysql_error());

//Copio il file nella cartella del Server
if(move_uploaded_file($_FILES['file']['tmp_name'], $percorso))
{

    
// mostro un messaggio di successo
    
echo "<div align=\"center\"> Memorizzazione del file [b]$file[/b] eseguita correttamente. 

 <a href=\"pannello.php\">Clicca qui per tornare al Pannello di amministrazione </a> </div>"
;
}
else {

//Scrivo un messaggio d'errore se ci sono stati errori
echo "C'è stato un problema nel caricamento del file.";
}
}
?>
Di seguito ho realizzato lo script che mi permette di visualizzare i file:

Codice PHP:
<?php
include('dbconn.php');

// query per ottenere l'elenco dei files nel DB
$query mysql_query("SELECT * FROM file") or die(mysql_error());

//Inserisco i risultati in un array
while($array mysql_fetch_array$query ))
{

echo 
"<tr> <td><a href=\"http://www.sito.it/docs/$array[file]\">$array[titolo]</a> </td> </tr>";
    }

?>
Avrei però necessità di settare i permessi dei file a 444 (sola lettura). Il mio problema è: come farlo?
Vale a dire, quando mi conviene cambiare i permessi dei file: terminata la procedura di upload oppure quando sto per visualizzare il contenuto dei file? Soprattutto... COME fare?

Grazie a tutti, buona serata,

Luca