Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di darkiko
    Registrato dal
    Feb 2002
    Messaggi
    3,030

    sovrascrivere un'immagine

    salve gente

    dunque

    compilando un form un mio utente può uploadare un'immagine che, per evitare possibili problemi di sovrapposizione di file, ha un nome dinamico di tipo ddmmyy_hhmmss.jpg; il codice che uso per caricarla va a scrivere in un campo "immagine" del db il percorso completo /web/img/ddmmyy_hhmmss.jpg

    ora se volessi permettere all'utente di aggiornare l'immagine, come diavolo faccio a dire alla mia pagina PHP che quell'immagine aggiornata deve proprio andare a sostituire quella "vecchia"?

    se passo il campo "immagine" passo tutto il percorso ed ovviamente non va bene...

    le tre soluzioni che mi sono venute in mente sono far scrivere a mano all'utente il nome del file identico a quello che deve sovrascrivere (metodo che preferirei evitare), di dire alla mia pagina di recuperare il nome del file .jpg e passarlo come nome dell'immagine nuova (tanto il percorso resta lo stesso) oppure dirgli di prendere da quel valore di "immagine" ciò che è scritto dopo /web/img/, ma in entrambi i casi non so come fare...


    come fare?


    grazie
    è nella nostra unicità che risiede la meraviglia degli esseri umani

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    460
    Ci sono vari modi di affrontare il problema. Il modo piu' furbo secondo me e' chiamare l'immagine ID.jpg, dove ID e' la tua chiave primaria per la tabella utente.
    There are 10 types of people in the world - those who understand binary and those who don't.

  3. #3
    Utente di HTML.it L'avatar di darkiko
    Registrato dal
    Feb 2002
    Messaggi
    3,030
    Originariamente inviato da frinkia
    Ci sono vari modi di affrontare il problema. Il modo piu' furbo secondo me e' chiamare l'immagine ID.jpg, dove ID e' la tua chiave primaria per la tabella utente.
    in effetti c'avevo pensato, ma io uso un codice così:

    codice:
    // Directory dove salvare i files Uploadati ( chmod 777, percorso assoluto)
    $upload_dir = $_SERVER["DOCUMENT_ROOT"] . "/web/img/";
    
    // Eventuale nuovo nome da dare al file uploadato
    $new_name = $adesso.".jpg";
    //$adesso è il mio ddmmyy_hhmmss
    
    // 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 !");
    }
    
    $immagine = "/web/img/".$new_name;
    
    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";
    dopo questo upload prendo anche il resto del form e con tutti questi dati vado a compilare un record su db, che quindi ha ad es:

    ID | titolo | testo | immagine |

    in cui come si vede nel codice sopra $immagine contiene /web/img/ddmmyy_hhmmss.jpg

    io come posso dire alla mia immagine di chiamarsi ID.jpg, se nel db non c'è ancora e di conseguenza non ha ancora un ID?

    scusa se la domanda è banalissima ma sto procedendo piano piano...


    forse potrei semplicemente separare $immagine in $percorso e $nome_immagine...
    è nella nostra unicità che risiede la meraviglia degli esseri umani

  4. #4
    Utente di HTML.it L'avatar di darkiko
    Registrato dal
    Feb 2002
    Messaggi
    3,030
    ok

    ho risolto dividendo il percorso dal nome del file

    tanto che ci siamo, potete dirmi perché questa cosa

    Codice PHP:
    $id $_POST['ID'];
    $posizione $_POST['posizione'];
    $sezione $_POST['sezione'];
    $titolo $_POST['titolo'];
    $intro nl2br($_POST['intro']);
    $testo nl2br($_POST['testo']);

    $sql "UPDATE ".$posizione." SET sezione='".$sezione."', titolo='".$titolo."', intro='".$intro."', testo='".$testo."' WHERE ID='".$id."'";

    $risultato mysql_query($sql,$conn) or die("Errore nella query: " mysql_error()); 
    mi da un "Errore nella query: You have an error in your SQL syntax."?


    sto' veramente fondendo...
    è nella nostra unicità che risiede la meraviglia degli esseri umani

  5. #5
    prova così vedi se cambia qualcosa

    codice:
    $sql = "UPDATE $posizione SET sezione='$sezione', titolo='$titolo', intro='$intro', testo='$testo' WHERE ID='$id' ";
    
    $risultato = mysql_query($sql) or die(mysql_error());
    ID è scritto in maiuscolo?

  6. #6
    Utente di HTML.it L'avatar di darkiko
    Registrato dal
    Feb 2002
    Messaggi
    3,030
    Originariamente inviato da troglos
    prova così vedi se cambia qualcosa

    codice:
    $sql = "UPDATE $posizione SET sezione='$sezione', titolo='$titolo', intro='$intro', testo='$testo' WHERE ID='$id' ";
    grande, così funziona benone!

    non ho capito perché col mio modo non andava, ma per ora va bene così

    grasssie mille
    è nella nostra unicità che risiede la meraviglia degli esseri umani

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 © 2024 vBulletin Solutions, Inc. All rights reserved.