Visualizzazione risultati 1 fino 5 di 5

Discussione: Problema caricamento e rinomina foto

  1. #1
    tiuz1990 non è connesso Neofita
    Data registrazione
    04-11-2010
    Messaggi
    13

    Predefinito Problema caricamento e rinomina foto

    Salve a tutti,
    devo caricare delle foto sull'host e rinominarle con "slide-[numero progressivo].jpg"
    mi carica correttamente gli altri valori del record ma il nome no...e non me le carica sull'host

    questo è il codice:
    Codice PHP:
    if( (isset($_FILES['FOTO']['tmp_name']) && ($_FILES['FOTO']['tmp_name'] != "")))
    {
    $EXT = findexts($_FILES['FOTO']['name']);
    $ultimo_id = mysql_query("SELECT MAX( id_file ) FROM Files") or die(mysql_error());
    $numfoto = (int)$ultimo_id + 1;
    $UPOLOAD = "slide-$numfoto.$EXT";
    move_uploaded_file($_FILES['FOTO']['tmp_name'], "../images/$UPOLOAD");
    mysql_query("INSERT INTO Files (nome_file, visibile, slider, id_cartella_ext) VALUES ('$UPLOAD', '1', '0', '$CARTELLA')") or die(mysql_error());
    }
    dove sbaglio?
    grazie in anticipo :)


    PS la funzione findexts() è la seguente
    Codice PHP:
    function findexts($filename)
    {
    $filename = strtolower($filename) ;
    $exts = split("[/\\.]", $filename) ;
    $n = count($exts)-1;
    $exts = $exts[$n];
    return
    $exts;
    }
    Ultima modifica di tiuz1990 : 26-09-2013 alle ore 18.56.50

  2. #2
    Guest

    Predefinito

    Ti consiglio di usare uploadify, ti permette di gestire meglio le varie fasi e includere la tua funzione nel punto più indicato.

  3. #3
    tiuz1990 non è connesso Neofita
    Data registrazione
    04-11-2010
    Messaggi
    13

    Predefinito

    grazie ma è a pagamento... poi vorrei capire dove sbaglio senza usare script :)

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Codice PHP:
    $ultimo_id = mysql_query("SELECT MAX( id_file ) FROM Files") or die(mysql_error());
    Nelle query SELECT, mysql_query() ritorna un resource (collegato alla connessione mysql) in caso di query eseguita correttamente; altrimenti FALSE.

    Per vedere invece il valore, devi usare ad esempio mysql_fetch_array(). Visto che vuoi il massimo, io aggungerei anche "LIMIT 1" in modo di ricevere un solo dato.

    Se ancora non va, prova a fare un var_dump() {o una echo} della variabile $UPLOAD per vedere se contiene cose sensate... O meglio, prova a fare la echo dell'ultima query per vedere cosa contiene.

    Prova anche a controllare (ad esempio con un if) cosa ritorna la funzione "move_uploaded_file()", per vedere se è stata eseguita correttamente.

    Consiglio: le funzioni mysql_* sono deprecate. Dovresti passare a mysqli_* (che alla fine sono quasi uguali), oppure PDO.

    Ciao!

  5. #5
    tiuz1990 non è connesso Neofita
    Data registrazione
    04-11-2010
    Messaggi
    13

    Predefinito

    RISOLTO

    Codice PHP:
    $EXT = findexts($_FILES['FOTO']['name']);
    $ultimo_id = mysql_fetch_array(mysql_query("SELECT MAX( id_file ) FROM Files;"), MYSQL_NUM);
    $numfoto = $ultimo_id[0]+1;
    $UPLOAD = "slide-".$numfoto.".".$EXT;
    move_uploaded_file($_FILES['FOTO']['tmp_name'], "../images/$UPLOAD");
    mysql_query("INSERT INTO Files (nome_file, visibile, slider, id_cartella_ext) VALUES ('$UPLOAD', '1', '0', '$CARTELLA')") or die(mysql_error());

Regole di scrittura

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