Non credo che quella di Eliox sia una buona idea, anche perché esauriresti rapidamente lo spazio sul disco se i file da caricare sono tanti. Se sei su un sistema UNIX-based, invece, potresti usare l'utility diff per ottenere le differenze tra le versioni dei file, e successivamente salvarle sul database, in modo che si possa ripristinare una versione. Questo sistema però comporta alcune limitazioni. Ad esempio, se l'utente decidesse di ripristinare la revisione 4 del file, dovresti recuperare il file originale e applicare tutte le modifiche fino alla revisione specificata (quindi quelle nella 1, nella 2, nella 3 e nella 4). Se invece salvassi ogni versione interamente potresti ripristinare direttamente la versione specificata. Per applicare le modifiche tra le versioni (sempre su UNIX) puoi usare il programma patch che modifica un file sulla base delle informazioni fornite da diff.
Quindi ora devi scegliere se conservare le intere versioni sul tuo HDD oppure solamente i cambiamenti tra una revisione e l'altra.