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

    Caricamento foto su un sito

    salve a tutti, mi sto cimentando in php ed ho riscontrato un problema, spero voi siate tanto clementi da potermi aiutare, perchè son certo che è una cavolata
    Allora questo è il codice per caricare il file:

    <?php
    if((!isset($_FILES["file_inviato"])) || ($_FILES["file_inviato"]["error"] != UPLOAD_ERR_OK))
    echo "Errore nell'invio del file. Riprova!";

    // Connessione e selezione del database

    // Verifico eventuali problemi nell'upload del file
    if((!isset($_FILES["file_inviato"])) || ($_FILES["file_inviato"]["error"] != UPLOAD_ERR_OK))
    echo "Errore nell'invio del file. Riprova!";

    // Connessione e selezione del database
    $db=mysql_connect("localhost", "", "")
    or die("Connessione non riuscita: " . mysql_error());

    if(mysql_select_db("immagini",'$db'))
    die("Selezione database fallita!");

    // Recupero delle informazioni sul file inviato
    $nome_file_temporaneo = $_FILES["file_inviato"]["tmp_name"];
    $nome_file_vero = $_FILES["file_inviato"]["name"];
    $tipo_file = $_FILES["file_inviato"]["type"];

    // Leggo il contenuto del file
    $dati_file = file_get_contents($nome_file_temporaneo);

    // Preparo il contenuto del file per la query sql
    $dati_file = addslashes($dati_file);

    // Query per inserire il file nel DB
    $query = ("INSERT INTO img ('nome','tipo','dati')) (VALUES(
    nome = '$nome_file_vero',
    tipo = '$tipo_file',
    dati = '$dati_file')");




    if($result=mysql_query($query))
    die("Query non valida: " . mysql_error());

    // Messaggio di successo
    echo "Memorizzazione del file $nome_file_vero nel database eseguita correttamente!";
    ?>

    dopo la memorizzazione voglio che il file possa essere visualizzato, quindi creo un codice affinchè il file venga estratto dal DB :

    <?php
    // Connessione e selezione del database
    $db=mysql_connect("localhost", "", "")
    or die("Connessione non riuscita: " . mysql_error());

    if(mysql_select_db("immagini","$db"))
    die("Selezione database fallita!");

    // Query per ottenere l'elenco dei files
    $domanda = ("SELECT dati FROM img")
    or die ("mysql_error ()");

    if($risultato = mysql_query($domanda))
    die("Query non valida: " . mysql_error());

    // Se ci sono file nel DB
    if(mysql_numrows($risultato))
    {
    // Estrazione dei risultati e stampa dei links
    while ($tmp = mysql_fetch_array($risultato))
    {
    echo "

    <a href=\"open.php?id=$tmp[id]\">$tmp[nome]</a></p>\n";
    }
    }
    else
    {
    echo "

    Nessun file presente nel database</p>";
    }
    ?>
    Ora riporto il file estratto in una cartella, con il seguente codice :

    <?php
    if($_GET['id'] == "")
    header("Location: view.php");

    // Connessione e selezione del database
    mysql_connect("localhost", "", "")
    or die("Connessione non riuscita: " . mysql_error());

    if(!mysql_select_db("immagino"))
    die("Selezione database fallita!");

    // Query per recuperare il file
    $query = "SELECT * FROM img WHERE id_file = " . $_GET["id"];
    $risultato = mysql_query($query)
    or die("Query non valida: " . mysql_error());
    $tmp = mysql_fetch_array($risultato);

    // Invio l'intestazione contenente il tipo MIME del file
    header("Content-Type: " . $tmp["tipo"]);

    // Invio il contenuto del file
    echo $tmp["dati"];
    ?>

    Ovviamente nel DB ho creato la tabella.
    Il problema che ho è che dopo aver caricato l'immagine nel db, non riesco a visualizzarla.
    La tabella si chiama "img" ed il database "immagini". Mi dice che la foto viene caricata correttamente, però non riesco a visualizzarla. Soluzioni? :S

  2. #2
    Vuoi dirmi che tu salvi l'immagine nel database?
    Ma non scherziamo
    Nel db salva solo i riferimenti al file (nome e facoltativamente i percorso), il file lo salvi in una cartella sul server.
    Poi per visualizzarlo su una pagina, richiami il nome del file dal db.

  3. #3
    Mi sarò espresso male. In poche parole io nel db salvo il nome dell'immagine, e poi l'ultimo codice postato sta ad indicare la cartella presente sul server che dovrebbe dare a video l'immagine. Ma ciò non accade

  4. #4
    Allora a cosa ti serve?
    Codice PHP:
    // Leggo il contenuto del file
     
    $dati_file file_get_contents($nome_file_temporaneo); 

  5. #5
    Ma appunto non riesco a trovare il problema, perchè non mi da errori il codice, ma non mi visualizza neppure l'immagine, dice che non è presente nel db..ma il caricamento avviene con successo.

  6. #6
    Utente di HTML.it L'avatar di Jack991
    Registrato dal
    Oct 2006
    Messaggi
    156
    prima di tutto nel tuo codice non esegui istruzioni che caricano il file.

    Se per caso fosse uno script esterno che non hai postato e lavori in remoto (cioè sul server) magari devi fare un chmod(777,'percorso/completo/cartella') prima dello sript seguito da un chmod(755,'percorso/completo/cartella') dopo lo script (imposta e successivamente revoca i permessi di scrittuta).

    Se non ci hai proprio pensato credendo lo facesse in automatico... povero illuso, magari! xD

    ti consiglio in questo caso uno script di upload ready-made free

    http://www.uploadify.com/
    Errare n00bbium est, perseverare autem hackerum

  7. #7
    Scusami non ho capito bene, dovrebbero essere gli utenti in grado di poter caricare una foto e poi poterla visualizzare sul sito..quindi non posso mettere il percorso, anche perchè non mi carica neppure l'immagine.

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.