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

    Chmod su upload di file

    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

  2. #2
    Utente di HTML.it L'avatar di jeppox
    Registrato dal
    Mar 2007
    Messaggi
    436
    ciao,

    il settaggio dei diritti puoi farlo con chmod() subito dopo aver caricato il file sul server dopo move_uploaded_file():

    Codice PHP:
    //Copio il file nella cartella del Server 
    if(move_uploaded_file($_FILES['file']['tmp_name'], $percorso)) 
    chmod("$percorso",0444);

    ... 

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.