Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    317

    Taggare un file per versioning

    Salve a tutti...secondo voi è possibile "taggare" un file con un stringa particolare ??
    Vorrei far riconoscere all'applicazione se quel determinato file è già stato uploadato oppure è nuovo.

    Il mio intento è fare l'upload di file (diversi) più e più volte e creare un albero di versioni per ogni file, versione 1.0, 1.1 1.2 ecc ecc...però deve creare una nuova versione solo se il contenuto di quel file è effettivamente cambiato dall'ultima volta.
    Il contenuto diverso pensavo di verificarlo dall' hash... che mi consigliate ??

    Grazie dei consigli

    Ciao
    La fortuna favorisce la mente preparata

  2. #2
    potresti anche usare SIZEOF che da la grandezza in byte..ovvio che se il file da uploadare ha + o - byte di quello salvato è stato modificato

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    317
    Ciao, grazie per la risposta...pensavo però di riuscire in un qualche modo ad inserire un'informazione. Anche solo una stringa di riconoscimento che mi mantenga integro il file ma che sia visibile dalla mia applicazione una volta che il file viene caricato. Se riuscissi ad esempio a metterci un id univoco, potrei riconoscerlo anche se cambiano il nome al file...io poi da quell'id ottengo in DB l'ultimo hash del contenuto, se è diverso salvo il file e creo una nuova versione, altrimenti segnalo all'utente che il file è già alla versione più recente.
    In pratica ci vorrebbero 2 hash, uno che inserisco io che non intacca l'integrità del file e rimane sempre la stessa stringa (a meno che non sia io a cambiarla) o uno sul contenuto del file in modo da confrontarli e capire se è stato cambiato o meno... Non so se è pura fantasia ma chiedere non costa nulla.

    Ciao, e grazie per il contributo a chiunque volesse partecipare.
    La fortuna favorisce la mente preparata

  4. #4
    molto più semplicemente salvi i vari file in una struttura di cartelle (non tutti nella stessa) e li salvi con un hash (non del nome del file ma tipo "sha1(uniqid(microtime(), true))" in modo da avere più casualità nei nomi) dopo di che tutte le informazioni sul file le butti nel database

    la struttura di cartelle, di solito io la creo usando le prime lettere del file ... se il file inizia con 1234567890 (e poi continua ... lo sha1 sono 20 coppie esadecimali) l'albero delle cartelle sarebbe:
    1/12/1234567890......
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #5
    scusate... ma non si fa prima ad usare bazaar o SVN?
    Sono fatti apposta e fanno da loro tutto il lavoro!
    Se volete qualcosa di automatico basta chiamarli da dentro php et voilà...

  6. #6
    Originariamente inviato da aleritty
    scusate... ma non si fa prima ad usare bazaar o SVN?
    Sono fatti apposta e fanno da loro tutto il lavoro!
    Se volete qualcosa di automatico basta chiamarli da dentro php et voilà...
    forse è in hosting e gli serve qualcosa di estremamente facile
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  7. #7
    Anche in hosting si può usare bazaar o svn...
    Dato che lo usi totalmente dal tuo pc!!
    Fa tutto da solo e sul server non devi aver installato nulla!

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    317
    Ciao Daniele_Dll, sto leggendo e rileggendo il tuo post ma non riesco a capire cosa intendi...
    Facciamo un esempio:
    io ho un documento word, il nome del file è pippo.doc e il suo contenuto è "Ciao sono appena nato".

    Faccio un upload di questo file, come procede a questo punto il tuo ragionamento ??...

    Il giorno dopo apro nuovamente pippo.doc, e aggiungo "...e questa è una frase aggiunta".
    Faccio di nuovo l'upload...

    Il giorno dopo apro pippo.doc cancello tutto e gli scrivo "Nuova frase ma non salvo", chiudo SENZA salvare, il file è identico a prima nel suo contenuto...poi faccio nuovamente un upload...


    L'applicazione dovrebbe a questo punto mettermi a disposizione due versioni per il file pippo.doc, la 1.0 salvata in data tot all'ora tot e la 1.1 salvata il giorno dopo con la possibilità di effettuare un download di qualsiasi versione.

    Da notare:
    1. L'utente ha effettuato l'upload 3 volte ma il sistema ha solo 2 versioni perchè il contenuto dell'ultimo file era identico alla versione più recente di quel file.
    2. L'utente al secondo upload (e al terzo) non ha selezionato nulla, non ha selezionato pippo.doc e cliccato su "inserisci nuova versione"... l'upload è un form unico per tutti i file. E' l'applicazione che riconosce che questo è un nuovo file oppure è un'evoluzione di uno già presente.

    aleritty la tua affermazione è correttissima, tortoise svn è eccezionale...ma stavo pensando ad un servizio multi utente...e poi la mia è più che altro curiosità
    La fortuna favorisce la mente preparata

  9. #9
    i servizi come bazaar e svn SONO multiutente! Sono stati inventati praticamente apposta!

    In particolare bazaar è ancora più efficiente perchè mantiene un database locale e non ha bisogno di sincronizzarsi ogni volta.
    Il bello di questi programmi è che poi ti risolvono da soli le differenze (tranne i conflitti)! (visto che è multiutente!)

  10. #10
    Se proprio non vuoi seguire le direttive di aleritty puoi tenere le versioni lavorando sulla data di ultima modifica dei file:

    file.1.0.txt - data (5/9/2008 10:00)
    file.1.1.txt - data (5/9/2008 10:02)
    file.1.2.txt - data (5/9/2008 10:05)

    questo è il codice per lavorare sulla data di ultima modifica:

    Codice PHP:
    <?php

    #il file da verificare.
    $file "test.php";
    #variabile che prende l'informazione.
    $last_time_modified filemtime($file);
    #formatta la data
    echo "Ultima modifica " date("d-m-Y H:i:s"$last_time_modified);

    ?>
    Perchè essere stupidi non è una menomazione ma un diritto di tutti!!!

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.