Visualizzazione risultati 1 fino 5 di 5

Discussione: problema con upload in php

  1. #1
    Guest

    Predefinito problema con upload in php

    Dopo aver attivato il database mysql mi trovo nella necessità di caricare delle foto sul sito e nel contempo di registrarle in una tabella cosicché possano essere visualizzate in modo dinamico, il punto è che quando effettuo l'upload mi dice che non è possibile spostare il file nella directory, questo è il messaggio:

    Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload.

    Come devo impostare la directory del server?
    Posto il codice dell'upload:

    Codice PHP:
    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)

    $upload_dir = $_SERVER["DOCUMENT_ROOT"] . "/upload";

    // c:/programmi/apache group/apache/test/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";

  2. #2
    Guest

    Predefinito

    Ciao, prova a sostituire questa riga:
    $upload_dir = $_SERVER["DOCUMENT_ROOT"] . "/upload";

    con questa:
    $upload_dir = "./upload";


    Ciaooooo!!!!!!!

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da debug
    Ciao, prova a sostituire questa riga:
    $upload_dir = $_SERVER["DOCUMENT_ROOT"] . "/upload";

    con questa:
    $upload_dir = "./upload";


    Ciaooooo!!!!!!!
    Ho già provato, ma non funziona lo stesso.

    holden

  4. #4
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    invece di @move_uploaded_file prova col copy
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da holden72
    Dopo aver attivato il database mysql mi trovo nella necessità di caricare delle foto sul sito e nel contempo di registrarle in una tabella cosicché possano essere visualizzate in modo dinamico, il punto è che quando effettuo l'upload mi dice che non è possibile spostare il file nella directory, questo è il messaggio:

    Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload.

    Come devo impostare la directory del server?
    Posto il codice dell'upload:

    Codice PHP:
    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)

    $upload_dir = $_SERVER["DOCUMENT_ROOT"] . "/upload";

    // c:/programmi/apache group/apache/test/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";
    2 domande:
    1) a cosa ti serve attivare il database per fare l'upload dei files se dopo non lo usi?
    2) sei sicuro che ci sia una directory upload che fa parte della tua DOCUMENT_ROOT (/var/www/html)? In altre parole: prova a stamparti a video la variabile $_SERVER["DOCUMENT_ROOT"] e guarda se la directory upload esiste.

    Per il resto non vedo errori (almeno ad occhio) ma se vuoi puoi provare a togliere gli "@" dalle funzioni is_uploaded_file e move_uploaded_file per vedere se ci sono dei warning che ti potrebbero dare una mano

    Ciao

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •