Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    15

    Memorizzare immagini: database o file ?

    Ho uno script in php che permette di scrivere articoli e pubblicarli... il solito insomma... volevo però aggiungere la possibilità di inserire delle immagini negli articoli. Immagini dell'utente chiaramente.
    Il mio dilemma è... meglio memorizzarle su un database agiungendo nell'articolo l'opportuno ID dell'immagine per poi farla inserire al motore che interpreta l'articolo memorizzato sul database oppure è meglio metterle come semlici file in una cartella e poi farli richiamare per visualizzarli ?

    Nel caso... che campo si usa per memorizzare le immagini all'interno di MYSQL ?
    La sfiga è cieca, ma quando hai sfigato scritto in braile sulla fronte, caro mio non c'è niente da fare, sarai sempre sfigato.

    Scusate il disagio ma se lavoriamo a caso...

  2. #2
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    io personalmente mi trovo benissimo nel metterle su db, anche x motivi di sicurezza.... x il campo che conterrà il codice dell'immagine io uso un longblob... se fai una ricerca troverai sicuramente preziose info perchè questo argomento è stato tirato in ballo (anche da me) molte volte
    Guybrush Threepwood

  3. #3
    ciao
    io ti consiglierei sul db di salvare solo il nome della foto, ild b resta cosi piu' leggero e tanto non penso che una volta progettato il sito ti metterai a spostare o rinominare le dir delle foto...

    http://www.mcganass.com

  4. #4
    Utente di HTML.it L'avatar di dany0
    Registrato dal
    Feb 2003
    Messaggi
    422
    anch'io penso che sia meglio in cartelle....ma dipende da quante foto stimi di avere....io ho 800 mb di foto e quindi già all'inizio sapevo che il db non andava bene...e per le foto lo uso solo per le foto che vengono inserite nel forum

  5. #5
    Dal punto di vista delle prestazioni, sconsiglio vivamente di memorizzare le immagini nel DB. Ti basta memorizzarene solo il nome e il percorso. Tant'è vero che sto riscrivendo un intero sito per trasformare la gallery ed altri accessi alle immagine del sito. Se vuoi accertarti dei limiti della memorizzazione nel DB vai a vedere il sito in questione http://www.planetmodels.it/models/models.php

    un'altro svantaggio (se memrizzi nel DB) è che ti offre il servizio hosting ti pone un limite massimo, che generalmente è di 500 mb.

    non per ultimo il dump (backup), di una tabella di determinate dimensioni è veramente lentissima. (1 ora circa per 50mb) Non so quanto ci impiegherebbe se dovessi importarla di nuovo sul sito, al di là del fatto che devi modificare alcuni parametri del php.ini (tipo memory_limit ecc.) che oltre ad intaccare la stabilità, ti obbliga ad avere un hardware di un certo tipo: per esempio se devi rimettere sul DB il backup di un file di 300mb devi avere un sistema con almeno 1024 di ram.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    15
    allora opterò per le cartelle... il limite sul mio hosting per il DB è di 50 mb ! (espandibili chiaramente, a suon di Euro!!).
    L'unico problema e' che poi dovro rinominare i file in modo numerico o qualcosa d'altro per evitare che si riscrivano sopra...
    voi come fate ?
    La sfiga è cieca, ma quando hai sfigato scritto in braile sulla fronte, caro mio non c'è niente da fare, sarai sempre sfigato.

    Scusate il disagio ma se lavoriamo a caso...

  7. #7
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    Originariamente inviato da utonTUX
    L'unico problema e' che poi dovro rinominare i file in modo numerico o qualcosa d'altro per evitare che si riscrivano sopra...
    voi come fate ?
    il db è utile apposta x questo

    Ti conviene a questo punto gestire i nomi e le posizioni da db e l'immagine in se in una cartella.

    Esempio di un'ipotetica riga di Mysql

    ID : 5
    NOME: miami05.jpg
    CARTELLA: ./images/

    E questo il codice x visualizzarle

    [img]<? echo $row['cartella'].$row['nome']; ?>[/img]
    Guybrush Threepwood

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    15
    Originariamente inviato da nickang
    Se vuoi accertarti dei limiti della memorizzazione nel DB vai a vedere il sito in questione http://www.planetmodels.it/models/models.php
    Cos'ha questo sito che non va... anzi sono tutte belle ragazze!!

    Pero vorrei sapere come gestite voi i nomi... se l-ipotetica cartella e /images/ e ci uppo un file di nome qwerty.gif e poi un'altro utente aggiunge una foto qwerty.gif mi sovrascrive la mia... voi come risolvete...
    La sfiga è cieca, ma quando hai sfigato scritto in braile sulla fronte, caro mio non c'è niente da fare, sarai sempre sfigato.

    Scusate il disagio ma se lavoriamo a caso...

  9. #9
    Utente di HTML.it L'avatar di dany0
    Registrato dal
    Feb 2003
    Messaggi
    422
    if (file_exists($file))
    echo "Esiste gia' un file con questo nome";

  10. #10
    Codice PHP:
    function renameUploadFile($real_photo$photo_dir)
        {
        
    //elimino dal nome della foto caratteri strani e la rinomino
        
    $tmp                                    =        explode("."$real_photo);
        
    $real_photo_no_ext        =        strtolower(replaceSpecial($tmp[0]));
        
    $real_photo_ext                =        strtolower(replaceSpecial($tmp[1]));
        
    $rename_photo                    =        $real_photo_no_ext.".".$real_photo_ext;

        
    //controllo che il nuovo nome del file non sia gia presente nella directory, eventualmente lo rinomino
        
    $exists_photo    =    $photo_dir.$rename_photo;
        
    $count                =    1;

        while(
    file_exists($exists_photo))
            {
            
    $rename_photo    =    $real_photo_no_ext."_".$count.".".$real_photo_ext;    
            
    $exists_photo    =    $photo_dir.$rename_photo;
            
    $count++;
            }
        
        return 
    $rename_photo;
        } 
    cosi controlli se in quella cartella esiste gia il nome del file se il file esiste ci agiguni un _1
    se esiste anche nome_file_1.jpg ilfiel diventa nome_file_2.jpg non sovrascrivendo niente

    la funzioen repalceSpecial, per eliminare tutti i tipi di caratteri che in un nome di una foto non vanno bene e' questa

    Codice PHP:
    function replaceSpecial($var)
    {
        
    $var str_replace("!","",$var);
        
    $var str_replace("\"","",$var);
        
    $var str_replace("#","",$var);
        
    $var str_replace("$","",$var);
        
    $var str_replace("%","",$var);
        
    $var str_replace("'","",$var);
        
    $var str_replace("(","",$var);
        
    $var str_replace(")","",$var);
        
    $var str_replace("*","",$var);
        
    $var str_replace("+","",$var);
        
    $var str_replace(",","",$var);
        
    $var str_replace("-","",$var);
        
    $var str_replace("/","",$var);
        
    $var str_replace(";","",$var);
        
    $var str_replace("<","",$var);
        
    $var str_replace("=","",$var);
        
    $var str_replace(">","",$var);
        
    $var str_replace("?","",$var);
        
    $var str_replace("@","",$var);
        
    $var str_replace("[","",$var);
        
    $var str_replace("\\","",$var);
        
    $var str_replace("]","",$var);
        
    $var str_replace("^","",$var);
        
    //$var = str_replace("_","",$var);
        
    $var str_replace("`","",$var);
        
    $var str_replace("{","",$var);
        
    $var str_replace("|","",$var);
        
    $var str_replace("}","",$var);
        
    $var str_replace("~","",$var);
        
    $var str_replace("‘","",$var);
        
    $var str_replace("’","",$var);
        
    $var str_replace("¡","",$var);
        
    $var str_replace("¢","",$var);
        
    $var str_replace("£","",$var);
        
    $var str_replace("¤","",$var);
        
    $var str_replace("¥","",$var);
        
    $var str_replace("¦","",$var);
        
    $var str_replace("§","",$var);
        
    $var str_replace("¨","",$var);
        
    $var str_replace("©","",$var);
        
    $var str_replace("ª","",$var);
        
    $var str_replace("«","",$var);
        
    $var str_replace("¬","",$var);
        
    $var str_replace("®","",$var);
        
    $var str_replace("_","",$var);
        
    $var str_replace("¯","",$var);
        
    $var str_replace("°","",$var);
        
    $var str_replace("±","",$var);
        
    $var str_replace("²","",$var);
        
    $var str_replace("³","",$var);
        
    $var str_replace("´","",$var);
        
    $var str_replace("µ","",$var);
        
    $var str_replace("¶","",$var);
        
    $var str_replace("·","",$var);
        
    $var str_replace("¹","",$var);
        
    $var str_replace("º","",$var);
        
    $var str_replace("»","",$var);
        
    $var str_replace("¼","",$var);
        
    $var str_replace("½","",$var);
        
    $var str_replace("¾","",$var);
        
    $var str_replace("¿","",$var);
        
    $var str_replace("À","A",$var);
        
    $var str_replace("Á","A",$var);
        
    $var str_replace("Â","A",$var);
        
    $var str_replace("Ã","A",$var);
        
    $var str_replace("Ä","A",$var);
        
    $var str_replace("Å","Aa",$var);
        
    $var str_replace("Æ","Ae",$var);
        
    $var str_replace("Ç","C",$var);
        
    $var str_replace("È","E",$var);
        
    $var str_replace("É","E",$var);
        
    $var str_replace("Ê","E",$var);
        
    $var str_replace("Ë","E",$var);
        
    $var str_replace("Ì","I",$var);
        
    $var str_replace("Í","I",$var);
        
    $var str_replace("Î","I",$var);
        
    $var str_replace("Ï","I",$var);
        
    $var str_replace("Ð","D",$var);
        
    $var str_replace("Ñ","N",$var);
        
    $var str_replace("Ò","O",$var);
        
    $var str_replace("Ó","O",$var);
        
    $var str_replace("Ô","O",$var);
        
    $var str_replace("Õ","O",$var);
        
    $var str_replace("Ö","Oe",$var);
        
    $var str_replace("×","X",$var);
        
    $var str_replace("Ø","Oe",$var);
        
    $var str_replace("Ù","U",$var);
        
    $var str_replace("Ú","U",$var);
        
    $var str_replace("Û","U",$var);
        
    $var str_replace("Ü","Ue",$var);
        
    $var str_replace("Ý","Y",$var);
        
    $var str_replace("Þ","",$var);
        
    $var str_replace("ß","ss",$var);
        
    $var str_replace("à","a",$var);
        
    $var str_replace("á","a",$var);
        
    $var str_replace("â","a",$var);
        
    $var str_replace("ã","a",$var);
        
    $var str_replace("ä","ae",$var);
        
    $var str_replace("å","aa",$var);
        
    $var str_replace("æ","ae",$var);
        
    $var str_replace("ç","c",$var);
        
    $var str_replace("é","e",$var);
        
    $var str_replace("è","e",$var);
        
    $var str_replace("ê","e",$var);
        
    $var str_replace("ë","ee",$var);
        
    $var str_replace("ì","i",$var);
        
    $var str_replace("í","i",$var);
        
    $var str_replace("î","i",$var);
        
    $var str_replace("ï","ie",$var);
        
    $var str_replace("ð","",$var);
        
    $var str_replace("ñ","n",$var);
        
    $var str_replace("ò","o",$var);
        
    $var str_replace("ó","o",$var);
        
    $var str_replace("ô","o",$var);
        
    $var str_replace("õ","o",$var);
        
    $var str_replace("ö","oe",$var);
        
    $var str_replace("÷","",$var);
        
    $var str_replace("ø","oe",$var);
        
    $var str_replace("ù","u",$var);
        
    $var str_replace("ú","u",$var);
        
    $var str_replace("û","u",$var);
        
    $var str_replace("ü","ue",$var);
        
    $var str_replace("ý","y",$var);
        
    $var str_replace("þ","th",$var);
        
    $var str_replace("ÿ","y",$var);
        
    $var str_replace(" ","_",$var);

        return(
    $var);
        } 
    http://www.mcganass.com

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.