Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    28

    visualizzazione immagine

    ciao a tutti vorrei visualizzare un immagine gif presente nel mio database.
    Ho abbozzato questo pezzo di codice ma non mi funziona mi da un errore sulla riga dell header contern type.
    Versioine php 5.1.2
    database mysql IMMAGINE composto da id_img,nome_file,tipo_file,dati_file (contenente l'immagine) e id_persona chiave esterna
    PERSONA composto da id_persona cognome e nome
    inoltre non mi funziona neanche la LIMIT ho dovuto porla come commento per verificare l'altro errore che vi ho gia descritto.

    Qualcuno sa aiutarmi?

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Documento senza titolo</title>
    </head>
    <body>
    <?php
    $host = 'localhost'; # l'host in cui risiede il database (IP)
    $user = 'root';
    $psw = '';
    $db = 'prova';
    mysql_connect($host,$user,$psw); #connessione al database
    mysql_select_db($db); #selezione del database
    $query = "SELECT *
    FROM immagine";
    $result = mysql_query($query);
    $totrows = mysql_num_rows($result);
    $query = "SELECT id_img
    FROM immagine AS i JOIN cliente AS c ON i.id_persona=c.id_persona";
    //LIMIT $totrows-1,$totrows";
    $result = mysql_query($query);
    while($row = mysql_fetch_array($result)){
    echo "ID rintracciato nel database " .$row[id_img];
    ;}

    if(!mysql_select_db('1stampa'))
    die('Selezione database fallita!');

    // query per recuperare il file
    $query = "SELECT dati_file FROM immagine WHERE id_img='$result'";
    $risultato = mysql_query($query) or die('Query non valida: ' . mysql_error());
    $tmp = mysql_fetch_array($risultato);
    header('Content-Type: image/gif');
    $x="[img]/upload/file_caricati/".$tmp[[/img]";
    echo $x;
    ?>
    </body>
    </html>

  2. #2
    questo credo non funzioni

    $query = "SELECT dati_file FROM immagine WHERE id_img='$result'";

    $result dovrebbe essere un array...

    fai prima a fare cosi


    while($row = mysql_fetch_array($result)){
    echo "ID rintracciato nel database " .$row[id_img];
    $id_immagine=$row[id_img];
    ;}

    $query = "SELECT dati_file FROM immagine WHERE id_img='$id_immagine'";

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    28
    non va
    e poi ce sempre il problema del LIMIT
    questo è l'errore che mi da:

    Cannot modify header information - headers already sent by (output started at /var/www/prova/upload/visual.php:8) in /var/www/provaupload/visual.php on line 35

    secondo me bisognerebbe concentrarsi sull'header però ho provato a vedere sui manuali e mi risulta che la sintassi è corretta.

    heeeeeeeeellllllllllllpp me

    n.b. nella query ce un errore non cliente as c ma persona as c ma non è quello il problema mi sono accorto di quell'errore gia prima di postare

  4. #4
    ovviamente questo non puoi metterlo alla fine

    header('Content-Type: image/gif');


    metti tutto il codice in un file e lo includi cosi

    [img]file.php[/img]

    l'istruzione header('Content-Type: image/gif'); farà in modo che quel file php sia preso come una img

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    28
    dici cosi

    $x="'http://mio ip server o dominio/prova/upload/file_caricati/".$tmp['nome_file']."'>";
    echo "<img='$x'>";

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    28
    naturalmente il tutto preceduto da
    header('Content-Type: image/gif');

  7. #7
    no, metti quel codice in un file

    immagine.php

    poi nell'altra pagina carichi [img]immagine.php[/img]

    mapoi perchè usi header per l'immagine? a cosa serve quel codice?

    non puoi semplicemente trovare l'url del file e caricalo normalmente?

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    28
    Ho rivoluzionato un po tutto per la visualizzazione dai un occhiata se ti va.
    Problemi segnalati:
    1 sceglie sempre il ramo 'Formato file non valido, sono permessi solo estensioni di immagini jpeg' nel file images.php anche se il file inserito corrisponde

    al tipo richiesto e quindi jpeg

    poi se pongo questa riga come commento per visualizzare se c'erano altri errori ho che tutto procede ma non mi visualizza niente a video se non altro

    echo "Upload terminato con successo:
    ";
    echo "Nome file: ".$_FILES['file_inviato']['name']."
    ";
    echo "Dimensione file: ".$_FILES['file_inviato']['size']."
    ";
    echo "Tipo MIME file: ".$_FILES['file_inviato']['type'];

    naturalmente l'esecuzione del codice e non il codice e non mi memorizza assolutamente nulla nel database e quindi la mancata visualizzazione dell'immagine

    potrebbe dipendere da quello

    Aiutooooooooooooooooo!!!!!!

    QUESTO E' IL FORM HTML

    <html>
    <head>
    </head>
    <body>
    <form name="upload" method="post" action="images.php" enctype="multipart/form-data">
    <input type="file" name="file_inviato">
    <input type="submit" name="go" value="Carica"></form>
    </body>
    </html>

    QUESTA E' LA MIA TABELLA NEL DATABASE images

    CREATE TABLE IF NOT EXISTS `image` (
    `IDimg` mediumint(6) NOT NULL auto_increment,
    `name` varchar(20) NOT NULL,
    `type` varchar(20) NOT NULL,
    `alt` varchar(20) NOT NULL,
    `title` varchar(40) NOT NULL,
    `note` varchar(100) NOT NULL,
    `image` mediumblob NOT NULL,
    `ts` timestamp NOT NULL default CURRENT_TIMESTAMP,
    PRIMARY KEY (`IDimg`)
    ) ENGINE=MyISAM;


    QUESTO IL FILE CONFIG.INC.PHP
    <?php
    $cfg['DBhost'] = 'localhost';
    $cfg['DBuser'] = 'root';
    //$cfg['DBpass'] = '';

    function connectDB($DBname)
    {
    global $cfg;
    $DBlink = @mysql_connect($cfg['DBhost'], $cfg['DBuser']) or die(mysql_error());
    return !mysql_select_db($DBname) ? die(mysql_error()) : $DBlink;
    }
    //$cfg['DBpass']
    ?>


    QUESTO IL FILE IMAGES.PHP
    <?php
    include('config.inc.php');


    $DBlink = connectDB('images');

    // controllo che non ci siano stati errori nell'upload (codice = 0)
    if ($_FILES['file_inviato']['error'] == 0){
    // upload ok
    // controllo che il file sia in formato jpeg
    if ($_FILES['file_inviato']['type'] != 'image/jpg') die("Formato file non valido, sono permessi solo estensioni di immagini jpeg");
    // copio il file dalla cartella temporanea a quella di destinazione mantenendo il nome originale
    copy($_FILES['file_inviato']['tmp_name'], "C:/imagephp/".$_FILES['file_inviato']['name']) or die("Impossibile caricare il file");
    // upload terminato, stampo alcune info sul file
    echo "Upload terminato con successo:
    ";
    echo "Nome file: ".$_FILES['file_inviato']['name']."
    ";
    echo "Dimensione file: ".$_FILES['file_inviato']['size']."
    ";
    echo "Tipo MIME file: ".$_FILES['file_inviato']['type'];
    }
    else{
    // controllo il tipo di errore
    if ($_FILES['file_inviato']['error'] == 2){
    // errore, file troppo grande (> 1MB)
    die("Errore, file troppo grande: il massimo consentito è 1MB");
    }
    else{
    // errore generico
    die("Errore, impossibile caricare il file");
    }
    }


    // se è stato inviato il file...
    if(isset($_POST['invia']))
    {
    // se ci sono stati problemi nell'upload del file
    if(!isset($_FILES['file_inviato']) OR $_FILES['file_inviato']['error'] != UPLOAD_ERR_OK)
    mostra_form("errore nell'invio del file. Riprova");

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

    if(!mysql_select_db('images'))
    die('Selezione database fallita!');

    // recupero alcune 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'];
    $alt_file = $_FILES['file_inviato']['alt'];
    $title_file = $_FILES['file_inviato']['title'];

    // leggo il contenuto del file
    //codice
    $dati_file = file_get_contents($nome_file_temporaneo);
    //fine new codice

    // preparo il contenuto del file per la query

    //codice
    $dati_file = addslashes($dati_file);
    //fine new codice

    // query per inserire il file nel DB
    $query = "INSERT INTO image SET
    name = '$nome_file_vero',
    type = '$tipo_file',
    title = '$title_file',
    alt = '$alt_file',
    image = '$dati_file'";
    mysql_query($query)
    OR die('Query non valida: ' . mysql_error());

    $sql = ("SELECT IDimg, alt, title FROM image");
    $result=mysql_query($sql)or die('Query non valida: ' . mysql_error());

    while($row = mysql_fetch_object($sql)) {
    echo "<img src=\"img.php?ID=$row->IDimg\" alt=\"$row->alt\" title=\"$row->title\" /> ";
    }
    }
    ?>

    QUESTO IL FILE IMG.PHP

    <?php
    include('config.inc.php');

    $DBlink = connectDB('images1');

    $ID = isset($_GET['ID']) ? (int)$_GET['ID'] : exit(header('Location: images1.php'));

    $sql = mysql_query("SELECT type, image FROM image WHERE IDimg = $ID") or die(mysql_error());

    $row = mysql_fetch_object($sql);

    header("Content-type: $row->type");
    echo $row->image;
    ?>

    grazieeeeeeeeeeeee

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.