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

    Costruiamo la pagina Php per l'upload?

    Ciao a tutti ..ho un problema..non capisco cosa significa permessi vanno settati a 777?
    in che senso?
    ho inserito il percorso dove voglio che mi mette l 'immagine...ma mi dice che ha salvato l'immagine ..ma poi nella cartellla non trovo niente..perchè?


    <?

    // QUESTE RIGHE RENDONO LO SCRIPT COMPATIBILE CON LE VERSIONI
    // DI PHP PRECEDENTI ALLA 4.1.0
    if(!isset($_FILES)) $_FILES = $HTTP_POST_FILES;
    if(!isset($_SERVER)) $_SERVER = $HTTP_SERVER_VARS;

    /********************* VARIABILI DA SETTARE ********************/
    // Directory dove salvare i files Uploadati ( chmod 777, percorso assoluto) VVoVe:
    $upload_dir = $_SERVER["DOCUMENT_ROOT"] . "/upload";

    // Eventuale nuovo nome da dare al file uploadato
    $new_name = "";

    // Se $new_name è vuota, il nome sarà lo stesso del file uploadato
    $file_name = ($new_name) ? $new_name : $_FILES["upfile"]["name"];

    if(trim($_FILES["upfile"]["name"]) == "") {

    die("Non hai indicato il file da uploadare !");

    }

    if(@is_uploaded_file($_FILES["upfile"]["tmp_name"])) {

    @move_uploaded_file($_FILES["upfile"]["tmp_name"], "$upload_dir/$file_name")
    or die("Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload.");

    } else {

    die("Problemi nell'upload del file " . $_FILES["upfile"]["name"]);

    }

    echo "L'upload del file " . $_FILES["upfile"]["name"] . " è avvenuto correttamente";

    ?>

    Le prime righe, come chiarisce il commento, servono a rendere disponibile la sintassi dei nuovi array introdotti con PHP 4.1.0 anche alle versioni precedenti.

    Le due variabili da settare sono rispettivamente:

    la directory dove spostare i files uploadati ($upload_dir, da indicare con il percorso assoluto sul server e i cui permessi vanno settati a 777)
    l'eventuale nuovo nome da dare al file che viene caricato sul server ($new_name; se non si vuole rinominare il file, questo avrà lo stesso nome che aveva sul computer client.)
    A questo punto effettuiamo un controllo per verificare se è stato selezionato un file per l'Upload, e lo facciamo con riferimento alla proprietà "name" del file.

    Andata a buon fine questa verifica, possiamo passare al cuore dello script, la parte cioè che "sposta" il file caricato in rete dalla directory temporanea del server (che si può settare in php.ini, nella variabile upload_tmp_dir) alla directory da noi indicata, eventualmente rinominandolo.

    Le funzioni usate a questo scopo, sono is_uploaded_file() (PHP 3>= 3.0.17, PHP 4 >= 4.0.3) e move_uploaded_file() (PHP 4 >= 4.0.3, eventualmente si può usare copy() in sostituzione). La prima funzione prende come parametro la variabile che contiene il nome temporaneo del file uploadato sul server ($_FILES["upfile"]["tmp_name"]) e verifica, appunto, se sia stato caricato; la seconda funzione prende due parametri: il primo è il nome temporaneo ed il secondo è il percorso finale (comprensivo del nome, nuovo o meno, del file) dove spostarlo.

  2. #2
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    per ogni file o cartella su server è possibile settare i permessi ke indichino chi (quale classe di utente) può fare cosa (quali classi di azioni su file o cartella).
    Senza perderci in riflessioni teoriche basta conoscere le tre classi di utenti: user, group e other e le azioni principali: read, write e execute con chiari significati angloesplicativi.
    Ora, dare un 777 equivale ad autorizzare tutti e tre i gruppi a fare il loro comodo, emntre ad esempio un 766 autorizza il primo tipo di utente tutte le azioni, mentre restringe a write e read il raggio d'azione degli altri due.
    Te, settando a 777 copri la possibilita allo script di uppare i file correttamente.
    Ho provato lo script e funge tranquillamente, ho avuto solo un problema riguardo alla stringa di configurazione della upload_dir, se anke te hai problemi prova così:

    Codice PHP:
    $upload_dir "upload"
    supponendo ke il tuo script si trovi al livello della cartella dove verranno depositati i file:

    |- upload.php (il tuo script)
    |- upload (la tua directory)

    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

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.