Visualizzazione risultati 1 fino 12 di 12

Discussione: immagini in mysql... salvataggio e caricamento

  1. #1
    Guest

    Predefinito immagini in mysql... salvataggio e caricamento

    Ciao a tutti orami sono preso male con il mio progetto :) potete testarlo qui http://fendermx.altervista.org

    mi domandavo come poter salvare immagini in mysql nella tabella:

    CREATE TABLE data_users(
    `nome` TEXT NOT NULL ,
    `cognome` TEXT NOT NULL ,
    `mail` TEXT NOT NULL ,
    `nick` TEXT NOT NULL ,
    `password` TEXT NOT NULL ,
    `nome_immagine` TEXT NOT NULL ,
    `tipo_immagine` TEXT NOT NULL ,
    `immagine_file` TEXT NOT NULL ,

    `frase_momento` TEXT NOT NULL
    ) ENGINE = MYISAM


    io ho trovato il seguente script ma non saprei riadattarlo

    Codice PHP:
    <?php

    include('config.php');
    // 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($db_host, $db_username, $db_password)
    or die(
    'Connessione non riuscita: ' . mysql_error());

    if(!
    mysql_select_db($database_name) )
    die(
    'Selezione database fallita!');

    // recupero alcune informazioni sul file inviato
    $nome_immagine_temporaneo = $_FILES['file_inviato']['tmp_name'];
    $nome_immagine_vero = $_FILES['file_inviato']['name'];
    $tipo_immagine = $_FILES['file_inviato']['type'];

    // leggo il contenuto del file
    $immagine_file = file_get_contents($nome_immagine_temporaneo);

    // preparo il contenuto del file per la query
    $immagine_file = addslashes($immagine_file);

    // query per inserire il file nel DB
    $query = "INSERT INTO data_users SET
    nome_immagine = '
    $nome_immagine_vero',
    tipo_immagine = '
    $tipo_immagine',
    immagine_file = '
    $immagine_file'";

    mysql_query($query)
    OR die(
    'Query non valida: ' . mysql_error());

    // mostro nuovamente il form ed un messaggio di successo
    mostra_form("Memorizzazione del file <b>$nome_immagine_vero</b> nel database eseguita correttamente.");
    header("location: index.php");
    }
    else
    {
    mostra_form();
    }

    /**
    * Mostra il form per l'upload del file
    *
    */
    function mostra_form($messaggio = '')
    {
    ?><head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Carica file nel database</title>
    </head>



    <p><?php echo $messaggio?> <br /> Seleziona un file da memorizzare nel database: <p></p>
    <form name="form1" enctype="multipart/form-data" method="post" action="">
    <p>
    <input type="file" name="file_inviato">
    <p></p>
    <p>
    <input type="submit" name="invia" value="Invia file">
    <p></p>
    </form>


    <?php
    exit();
    }
    ?>
    sopprattutto perche mi deve andare ad aggiungere l'immagine dove vi il l'user loggato.. (questo so farlo io, verificare quale user loggato) non saprei come andarla a recuperare per stamparla a video...


    con
    Codice PHP:
    <?php

    include("../config.php");
    $db = mysql_connect($db_host, $db_username, $db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Se questo errore dovesse ripetersi contattare l'assistenza");
    mysql_select_db($database_name, $db)
    or die (
    "Errore nella selezione del database. Se questo errore dovesse ripetersi contattare l'assistenza");

    //Traduzione: seleziona tutti i campi dalla tabella data_users
    $sql = "SELECT immagine_file FROM data_users WHERE nick = '$_SESSION[user]'";
    //eseguo query
    $q = mysql_query($sql) or die("errore: ".mysql_error());


    $tmp = mysql_fetch_array($q);

    //costruisco la pagina. cambiare il tipo di file a seconda delle esigenze
    //header('Content-Type: image/jpeg');

    // invio il contenuto del file
    //echo $tmp['immagine_file'];
    //---------------------------------
    // Ottengo le informazioni sull'immagine originale
    list($width, $height, $type, $attr) = getimagesize('immagine_file');

    // Creo la versione 120*90 dell'immagine (thumbnail)
    $thumb = imagecreatetruecolor(150, 240);
    $source = imagecreatefromjpeg('immagine_file');
    imagecopyresized($thumb, $source, 0, 0, 0, 0, 120, 90, $width, $height);
    echo
    $tmp['immagine_file'];
    //----------------------------------


    ?>
    mi appare:
    Codice PHP:
    &#65533;JFIF������C� $.' ",#(7),01444'9=82<.342�C 2!!22222222222222222222222222222222222222222222222222�L„"����������������S���!1AQ"a2q‘#BR$3b4SCr%5s‚’“U&'DTtƒ„”�������������3���!1AQaq"‘2R#Bb���?� )w8‚&$“ix?qp Yu(Bx€n'Œr\y˜Sv)—IŠH˜’L ּŽ“kamv’…RW&7„DF=›Œˆf•„\*8ɪU‹—‰]'S–7.š [<n$gZG�{Yտ)XPu…PA” $|JxNvŠn6_gœc<~Ÿ*jrŸv–\PBQ˜Ta€v‘F"{5zb*=r™@ZvR…d+%_“ewT*’]_t–g–:ŸmsC(Š (€Š( (€Š( (€Š( (€Š( (€ŸyZ<ͧn˜ž™M*–yQEQEQ@QEQ@QEQ@QEQ@QEQA#kpŻ2KmR(Ag.E CZ-CnJJ– HLA3\Ecݴ_I^6޹—FžS{»r†O5GۡZx*Yl/-‰GB}a}iY›g'c8B…A‚U™™‚o4,.ߴnv<…A2$>ž7P–•7”E TY<*"FI55TW„h“^Ͼ†笝os nœŸˆ‘žk4ok{ּū ›œJJ—*• ‡oEPŸj)*8€Rr2Jdש •*Afn a`z‹{سi7kll–š- 6€N–m6v۷vZܾeEۦ!P H"rxxuϳ>žxٹ&^~2zzөš—-(ZTյ`)0?QNC* (€Š( (€Š( (€Š( (€Š( (€Š( (€Š(>BҴ(i I0A*#X|”.+jJ!.‚2ˆ*/‡үY‚‚ *…Aڢ‚s5ž„*I�™ƒ'5W?Ÿz5gC~ŸQEuyQ@QEQ@QEQ@QEQ@QEQ@QEQ@QE_cXein†RC7 G�L`"QYr)gӻkk6—rܡKIYR TH;}8@*&'˜ڻj庬_}մmhXF‚́�#]�˜SAlœK‰I I r9X)u13zsiNŠ*ť‹(iַ7@‚„‡Jl“unWP–w†mY[‰bOažM6K…6[u“Ү–f—L+ƒ Ÿ™Q˜ˆ[լC‡…›RH•4m\ŸL;W�z~�_^ŸEQ]AEPQZM5mdn<“nn%+p}Fd„{fEg,>]:}<z~+DL5ZiBB——O&?9Y†›Fi’ҥ!a”#Š~~{�ݹ�?—+=]‡g1~W_–{�cž9Z~G=:)@GDvš\&Wo—!.3€fzŸ%gBxS_>enz$L ‰=†y5u™+Pc>Rœ_3x•#’85VQa,8Rmˆ’˜iZNŒ†~[N7‡D-IV›V”&UG3CwMiq@o}:�JJ}39œg:ž[+k-&&2)zvn’M}b—]“`R x $‚�CްjcXB„\+l ‚Šb1ERGs>sw(Š (€Š( (€Š( (€Š( (€Š( (€Š( (€Š( (€Š(44wX<Z*‡gn˜LIšy™~R5jyEYDf|ŠoF~j5}&Oqn„iIm1Qp1$tˆ^1 –…›#}Km3吰**HFL€dWeO].h* n�dz•�3L7-2Xe†ZR†‰<’I$œ“W—Ǐ{{zss›А”%[8Pœb i^_YC7ٰ…az–Œt‘|‡xK-z…ҶFŸݪQDyz‰�ˆX v:(/ia&cŸ@‚Gdi3e}’QŒy�‚+l} ˜QTQEEPQEEPQEEP"f=@f–Š*I QEAEPQEn~[ i2[?t@“�‘;AŒk:Š+81}LˆQE~†Š‡šC‰ ua+H )--I9„ZղG/=jMoz۲”•*@ %@JA&[‰q?9�na›Q^›Š>{f”;|„1mtmPBS XœGrx/Go�wkO;zJ™s1z_o?޽W)*gŸŽ.<^‚t}_"uCZ^)-<L@H‰$3XnGŽi„ijiW)Y>zc„“�+;DF‚ >L?�s–m7|o妾꼢Šu*{5MN}(R VB 'Wi"cV‘f‹5}mj6—B ”'rR'$W—C-cv><ɾ=o„ǼvŠ=im<–*]~VR”–KƒJ‚R œ„‰V6>3Z—E‹Žܡ‡n‚1TT(pg&�ܷzLm�z5_V‰�+,#ODy~_˜*cb"1•_w—~/w*(p/>›=K*ƺ€ <�TW+m||_Ÿ+C}w’@J–)’J+�K˜O�X�Žž9y͹~k[vwm_7Ž%YY’AŽŽb}=S>J. *Jd8L! )IZ–T6G”w"jv?g›“ϼ—Ÿn/—8Š+Ѽ_wBgV�0ݶ””uiذ * ‘ €”‚p<tzu3qߝ™orš‚Š(J (€Š( (€XzelPHڨCpj**Y/e4gL zY’N.7nqII‘#*ٳ`•›,<[*z‰3”NIœ|6ŠSq’[> †…ii!z}œn* $vˆA<%B#U֝^u�~;/4Cߵ4˜* FͻR#Of*Nž'>K%I�’S2Dsœpk:S)eW+`-%ħ’™J\s“}ߴ ŸN'f~šM*HZJV’B’›[7Vx‹op„m@ ;6dœAžES•q�g�Œ�S™Ÿ)Ÿ]xKW/ne R•-[R’O`?J~uN””!3*kEœv6’‚6•I™•‘'ž™4<t]y{‰ —isT+KZ_~›%d„�œ@S+6Kw L“”ž>Š(8::†- y9 DL@8E?#,G—W—o3Ž"3Ĩq—EvFq;sw,*Ad%+*1 $IQHŽ�NbW:fk|P-^K �%$ǸƒFz‹wV,-QJ dFA*[zjY�Y+sClk\—Cj)*P+ 1T9$A3^‹?w”ο(%A^}žv6:ΤŽ‚)&﮿‹}Ey…]a6 \>PSegpb@‘́+-u.۹% L0ALM|QEQMSˆB•*)SŠ€L&s�ŸŠŠ( ( AJ(›‚Š( (ŠŠ( Šr”!%KQ)H’OaV�cjŸm� �J|ŸT^Z .PL8H'EW,˱h^vaմJmR(ASž>—›’—”‚d˜•bIǽUn6k–V“ Eš}rdT‡•(ģ>’HDdMIkZ‘~l?,›ߴ‰‰?sThzxYe“WuzZt–yln—–R\)V�8VS<Š?mjs�~O
    Ultima modifica di fendermx : 19-10-2009 alle ore 22.00.43

  2. #2
    Guest

    Predefinito

    ci sono due soluzioni per mettere immagini nel db... una salvare in un campo il percorso dell'immagine e stamparla a video oppure usare un campo di tipo blob per caricarci direttamente l'immagine (qui un articolo sul campo blob)

  3. #3
    Guest

    Predefinito

    L'immagine non un testo, non poui usare un campo text per inserirla. Devi usare un campo blob.

  4. #4
    Guest

    Predefinito

    ok ho cambiato la tabella in
    CREATE TABLE data_users(
    `nome` TEXT NOT NULL ,
    `cognome` TEXT NOT NULL ,
    `mail` TEXT NOT NULL ,
    `nick` TEXT NOT NULL ,
    `password` TEXT NOT NULL ,
    `nome_immagine` TEXT NOT NULL ,
    `tipo_immagine` TEXT NOT NULL ,
    `immagine_file` blob NOT NULL,
    `frase_momento` TEXT NOT NULL
    ) ENGINE = MYISAM

    ma come faccio a richiamarla?

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da palla000 Visualizza messaggio
    qui un articolo sul campo blob
    segui il link

  6. #6
    Guest

    Predefinito

    ok, ma intendo, si puo far qualcosa sistemando il mio?

    Codice PHP:
    $sql = "SELECT immagine_file FROM data_users WHERE nick = '$_SESSION[user]'";
    //eseguo query
    $q = mysql_query($sql) or die("errore: ".mysql_error());


    $tmp = mysql_fetch_array($q);

    //costruisco la pagina. cambiare il tipo di file a seconda delle esigenze
    header('Content-Type: image/jpeg');

    // invio il contenuto del file
    echo $tmp['immagine_file'];
    -
    Edit:
    Un'altra guida (che era piu capibile di un esempio) mi dava questo codice.. solo che non funge...

    Codice PHP:
    <?php

    include("../config.php");
    $db = mysql_connect($db_host, $db_username, $db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Se questo errore dovesse ripetersi contattare l'assistenza");
    mysql_select_db($database_name, $db)
    or die (
    "Errore nella selezione del database. Se questo errore dovesse ripetersi contattare l'assistenza");

    //Traduzione: seleziona tutti i campi dalla tabella data_users
    $query = "SELECT immagine_file FROM data_users WHERE nick = '$_SESSION[user]'";
    //eseguo query
    //$q = mysql_query($sql) or die("errore: ".mysql_error());
    //$tmp = mysql_fetch_array($q);

    //$query="SELECT foto FROM Dettagli WHERE id='. $_GET[id]'";

    $risultato = mysql_query($query) or die('Query non valida: ' . mysql_error());
    $riga = mysql_fetch_array($risultato);
    $foto=$riga[foto];
    echo <<<EOT

    <img scr="
    {$foto[$n]}">


    EOT;
    ?>
    anche se sintatticamente mi pare corretto no?

    ho seguito l'esempio qui linkato

    grazie in anticipo a chi risponder
    Ultima modifica di darkwolf : 20-10-2009 alle ore 19.15.27

  7. #7
    Guest

    Predefinito

    Scusa, ma gi fatto
    Codice PHP:
    $sql = "SELECT immagine_file FROM data_users WHERE nick = '$_SESSION[user]'";
    //eseguo query
    $q = mysql_query($sql) or die("errore: ".mysql_error());


    $tmp = mysql_fetch_array($q);

    //costruisco la pagina. cambiare il tipo di file a seconda delle esigenze
    header('Content-Type: image/jpeg');

    // invio il contenuto del file
    echo $tmp['immagine_file'];
    Questo funziona, se nella colonna immagine_file c' il file jpeg (ed impostata a blob).

  8. #8
    Guest

    Predefinito

    ma a me da: l'immagine non puo essere visualizzata perche contiene errori...

    ovviamente immagine jpeg

    dopodiche mi stampa solo l'url della pagina stessa

    infine, risolto questo problema possibile inserire un ridimensionamento automatico a una largherrza massima di 150px e altezza massima di 240px?

    forse ho capito dove sta l'inghippo, non ho precisato che l'immagine deve esser aperta non in una nuova pagina, bensi in una tabella
    Ultima modifica di fendermx : 20-10-2009 alle ore 20.40.13

  9. #9
    Guest

    Predefinito

    interessa pure a me.. ho seguito l'esempio ma non capisco come inserirlo nell mio esempio

    Codice PHP:
    <tr>
    <td height="240" class="style1"><div align="center">
    <?php
    $db_host
    ='xxxx';
    $db_username='xxx';
    $db_password='xxx';
    $database_name='my_xxxxxx';

    $db = mysql_connect($db_host, $db_username, $db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione.");
    mysql_select_db($database_name, $db)
    or die (
    "Errore nella selezione del database. ");


    $query = "SELECT fileimmagine FROM us_dati WHERE username = '$username' ";

    $q = mysql_query($query) or die("errore: ".mysql_error());

    $tmp = mysql_fetch_array($q);

    echo
    $tmp['fileimmagine'];

    ?>
    </div></td>
    </tr>
    ma non mi fa apparire nemmeno la pagina, mi stampa a video solo il link diretto della pagina stessa...



    help!!!

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da fendermx Visualizza messaggio
    ma a me da: l'immagine non puo essere visualizzata perche contiene errori...

    ovviamente immagine jpeg

    dopodiche mi stampa solo l'url della pagina stessa

    infine, risolto questo problema possibile inserire un ridimensionamento automatico a una largherrza massima di 150px e altezza massima di 240px?

    forse ho capito dove sta l'inghippo, non ho precisato che l'immagine deve esser aperta non in una nuova pagina, bensi in una tabella
    Beh.. allora non puoi usare quella sintassi perch se imposti l'header type si aspetta che dopo ci sia soltanto un valore binario che rappresenta il tipo specificato e non cose in html. Devi usare un'approccio diverso. Io direi di salvarti nel db il percorso dell'immagine e le varie info (dimensione eccecc (se proprio ti interessano)) e poi usare il tag <img src='' /> per visualizzarla nella pagina dove ti pare.

    Per quanto riguarda il ridimensionamento puoi usare gli attributi height e width del tag img (ma non un ridimensionamento effettivo) Altrimenti ci sono script online gi fatti che fanno quel lavoro.

  11. #11
    Guest

    Predefinito

    Ho seguito il consiglio di salvare solo i link sul server ma...


    Codice PHP:
    $nomefile="$_SESSION[link_immagine]";
    echo
    "immagini_utente/$nomefile.jpg";
    echo
    "<img src=\"{immagini_utente/$nomefile.jpg}\" alt=\"\" />"

    echo "immagini_utente/$nomefile.jpg"
    ; mi da sempre un

    immagini_utente/.jpg
    Ultima modifica di fendermx : 22-10-2009 alle ore 14.10.56

  12. #12
    L'avatar di mycarlo
    mycarlo non  connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Codice PHP:
    $nomefile=$_SESSION["link_immagine"]; // le virgolette vanno messe all'indice!
    echo "<img src=\"immagini_utente/{$nomefile}.jpg\" alt=\"\" />";// solo la variabile fra le parentesi graffe !

Regole di scrittura

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