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

    Estrazione immagine blob da MYSQL

    Ciao a tutti ho creato con l'aiuto della guida di html.it un form dove un utente può inviare un immagine al mio database:
    Codice PHP:
    <?php

    if(!isset($_POST)) $_POST $HTTP_POST_VARS;
    $self = isset($_SERVER) ? $_SERVER["PHP_SELF"] : $HTTP_SERVER_VARS["PHP_SELF"];

    if(
    $_POST["invia"]) {

    //connessione al database
    include('../connect.php');

    //memoriziamo il contenuto della foto
    $data addslashes(fread(fopen($_FILES["file_binario"]["tmp_name"], "rb"), $_FILES["file_binario"]["size"]));

    //inseriamo l'immagine

    $result = @mysql_query("UPDATE SQUADRA_foto SET datibinari ='$data', nome='" $_FILES["file_binario"]["name"] . "', 
    size = '" 
    $_FILES["file_binario"]["size"] . "',  type = '" $_FILES["file_binario"]["type"] . "' WHERE team = '$team'") or die("Errore nell' inserimento dell'immagine!");

    //inserimento avvenuto con successo
    echo "Il file " basename($_FILES["file_binario"]["name"]) . " è stato correttamente inserito nel Database.";

    //chiudiamo la connessione
    @mysql_close();

    } else {

    echo 
    "
    <html>
    <head>
    <title>Form per l'inserimento</title>
    </head>
    <body>

    <div align=\"center\">
    <table>
    <form action=\"
    $self\" method=\"POST\" enctype=\"multipart/form-data\">
    <tr>
    <td>File</td>
    <td><input type=\"file\" name=\"file_binario\" size=\"40\"></td>
    </tr>
    <tr>
    <td colspan=\"2\" valign=\"bottom\" align=\"center\" height=\"30\">
    <input type=\"submit\" value=\"Invia il file\" name=\"invia\"></td>
    </tr>
    </form>
    </table>
    </div>

    </body>
    </html>
    "
    ;

    }

    ?>
    E questo funziona perfettemente il problema è che non so come estrarre l'immagine e vederla...ho provato come dice la guida,ma non mi restituisce niente!!
    Potete aiutarmi?

  2. #2
    Nessuno??

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Ci puoi dire la guida che stai seguendo? O almeno posti pure il codice che usi per far apparire l'immagine se puoi.

  4. #4
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao,
    dovresti recuperare l'immagine dal database ed inviarla al browser utilizzando la funzione header

    Questo è un esempio a cui devi ovviamente sostituire le variabili php

    codice:
    <?php
    header("Pragma: public");
          header("Expires: 0");
          header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
          header("Cache-Control: private",false);
          header ( "Content-Type: $filedatatype" );
          header("Content-Disposition: attachment; filename=\"".$FileObj->name."\";");
          header("Content-Transfer-Encoding:_ binary");
          header("Content-Length: ".$filesize);
      readfile($file);
    exit;
    ?>
    Per maggiori info visita la pagina del link.

    Ciao

  5. #5
    Ciao e grazie per la riposta,io l'ho provato a mettere così:
    Codice PHP:
    <?php
    //connessione al database
    include('connect.php');



    //estraiamo i dati dell'immagine
    $query "SELECT * FROM SQUADRA_foto";
    $res mysql_query($query) or die (mysql_error());
    while(
    $row mysql_fetch_array($res)) {
    $datibinari $row['datibinari'];
    $nome $row['nome'];
    $size $row['size'];
    $type $row['type'];
    }


    header("Pragma: public");
          
          
    header("Expires: 0");
          
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
          
    header("Cache-Control: private",false);
          
    header("Content-Type: $type);
          
    header("Content-Disposition: attachment; filename=\"".$FileObj->name."\";");
          
    header("Content-Transfer-Encoding:_ binary");
          
    header("Content-Length: ".$size);
    readfile($datibinari);
    exit;
    ?>
    Ho rpovato a leggere la guida sugli header,ma è in inglese e non ci ho capito un granchè...potresti spiegarmi per prima cosa cosa significa:

    header("Pragma: public")

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Il pragma imposta la cache.
    Comunque ti basta scrivere:

    header('Content-Type: $type ');
    include_once $file;

  7. #7
    Ciao,grazie per la spiegazione ho fatto così adesso,ma continua a darmi la pagina bianca...potresti corregermi lo script per favore?
    Codice PHP:
    <?php
    //connessione al database
    include('connect.php');

    //estraiamo i dati dell'immagine
    $query "SELECT * FROM SQUADRA_foto";
    $res mysql_query($query) or die (mysql_error());
    while(
    $row mysql_fetch_array($res)) {
    $datibinari $row['datibinari'];
    $nome $row['nome'];
    $size $row['size'];
    $type $row['type'];
    }

    //impostiamo le cache
    header("Pragma: public");
          
          
    header("Expires: 0");
          
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
          
    header("Cache-Control: private",false);
          
    header('Content-Type: $type ');
          
    header("Content-Length: ".$size);
          include_once 
    $file;

    readfile($datibinari);
    ?>

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Leva, il read file. Non c'entra.

  9. #9
    Originariamente inviato da simo22
    Leva, il read file. Non c'entra.
    Ciao l'ho tolto,ma continua a non farmi vedere l'immagine!

  10. #10
    Ho provato a modificare,ma ancora niente!Sarebbe meglio provare a salvare le immagini con un campo tipo VARCHAR su una cartella?

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.