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

    Salvare immagini in DB o in filesystem?

    Salve a tutti.
    Come da titolo ho questo enigma da risolvere. Ho letto un pò di argomenti al riguardo ma a tutt'ora non ne sono venuto a capo.
    Stò creando una webapp dove per ogni utente registrato permetterà di poter caricare tante immagini quante ne siano a lui necessarie.
    Devono però essere accessibili solo a lui e non visibili e7o modificabili da altri. Le uniche due soluzioni riguardano quindi l'immissione delle immagini direttamente nel database (molto sicuro come metodo) oppure la creazione di cartelle apposite nel filesystem protette con .htpassw.
    Entrambi i metodi a mio avviso sono validi se non con qualche limitazione circa le dimesioni nel primo caso e il numero di immagini nel secondo (ovviamente anche le dimensioni).

    Voi avete qualche parere al riguardo?

    Grazie
    Ethan78

  2. #2
    bhe guarda io CHIARAMENTE salverei le img in una cartella sul server...e nel database invece salverei solo il link all'immagine o il path....vedi tu!
    www.mondosviluppatori.it
    La tua migliore risorsa sulla programmazione, numerose guide, sorgenti e tutorial da scaricare gratuitamente.

  3. #3

    Re: Salvare immagini in DB o in filesystem?

    Originariamente inviato da Ethan1978
    Salve a tutti.
    Come da titolo ho questo enigma da risolvere. Ho letto un pò di argomenti al riguardo ma a tutt'ora non ne sono venuto a capo.
    Stò creando una webapp dove per ogni utente registrato permetterà di poter caricare tante immagini quante ne siano a lui necessarie.
    Devono però essere accessibili solo a lui e non visibili e7o modificabili da altri. Le uniche due soluzioni riguardano quindi l'immissione delle immagini direttamente nel database (molto sicuro come metodo) oppure la creazione di cartelle apposite nel filesystem protette con .htpassw.
    Entrambi i metodi a mio avviso sono validi se non con qualche limitazione circa le dimesioni nel primo caso e il numero di immagini nel secondo (ovviamente anche le dimensioni).

    Voi avete qualche parere al riguardo?

    Grazie
    Ethan78
    Le salvi su filesystem.
    Nella cartella dove le salvi (una per tutti o una per utente, cambia poco) metti una index in modo che non si possa visualizzare il contenuto della cartella e imposti a false il "list directory content" nel web server.

    Se vuoi che nessuno oltre il proprietario possa vedere un'immagine (es http://www.sito.it/immagini/pippo.jpg NON deve essere visualizzata da nessuno tranne il proprietario) allora non usare un .htaccess (che devi gestire!) ma fai così:

    quando stai per salvare l'immagine sul filesystem, anzichè col nome "pippo.jpg" la salvi con un md5 di "id_utente, nome_immagine_senza_estensione, data_inserimento".estensione e salvi nella tabella delle immagini l'id_utente, il nome originale CON estensione, il nuovo nome e la data in formato UTS.
    Codice PHP:
    $adesso time();
    foreach (
    $_FILES as $campo => $file) {
        
    $ext pathinfo($file["name"], PATHINFO_EXTENSION);
        
    $nome pathinfo($file["name"], PATHINFO_BASENAME);
        
    $new_name md5("{$id_utente}{$nome}{$adesso}") . $ext;
        
    $sql "INSERT INTO Immagini (id_utente, data, nome_file_originale, nome_file_nuovo) VALUES ($id_utente$adesso, '{$new_name}', '{$file["name"]}'";
        
    altre istruzioni eventuali (esecuzione querycontrolli di coerenzasalvataggio sul file system del file ecc)

    così facendo nella cartella immagini hai dei file del tipo
    19f942e6cdde23fd0e727cb328eca133.jpg
    8dc0f648c27180c2306359d6e258d4ae.gif
    eccetera, piuttosto difficili da "indovinare"

    Quando l'utente si logga, dalla tabella delle immagini recuperi i dati (id_utente, data, nome_file_originale, nome_file_nuovo) e così hai tutte le info per recuperare limmagine e fargliela gestire (vedere, cancellare, rinominare ecc)


  4. #4
    Ciao, grazie per avermi risposto.
    La soluzione mi sembra abbastanza elegante e funzionale
    Un ultima cosa. Ho letto che c'è un numero massimo di file che posso gestire per singola cartella su webserser (se non sbaglio parlava di 20.000) o comunque con grande nuomero si congestiona il server.
    Anche qui hai una dritta su come procedere?

    Grazie
    Ethan78

  5. #5
    Non mi risulta.
    Forse è solo un'indicazione di massima e relativamente a "recuperare i nomi di file di una cartella", sicuramente non è relativo a "apro un file particolare" o a "visualizzo un file particolare".

  6. #6
    Ok... vedrò in caso ad atto compiuto se ci saranno problemi.
    Grazie tantissimo per l'aiuto.

    Ethan78

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.