Visualizzazione dei risultati da 1 a 5 su 5

Discussione: lock file

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125

    lock file

    ciao a tutti.

    Come posso bloccare un file con php?

    mi spiego meglio.... Io leggo un file excel e poi ci scrivo sopra dei dati.

    Vorrei che mentre faccio questa operazione nessun altro possa aprire il file in scrittura visto che il file e' in rete nell'azienda.

    E' possibile?


    Guardavo flock() ma non capisco se fa al caso mio....

    Io per leggere il file xls uso lo script trovato qui

    http://free-script.it/post/Script_ph...con_php-39.htm

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Non so se sia possibblile. Se proprio vuoi che nessuno non veda ne modifichi il tuo file, puoi salvarlo nella memoria e ritrasferirlo in seguito nel file system a operazione finita.
    Quindi copi il file in una cartella temporanea (magari con un uniqid) che poi cancellerai alla fine del processo.
    Elimini il file originale con un unlink().
    Apri il file copiato con la tua classe e ottieni quello che ti serve.
    Copi il file nella cartella del file temporaneo nella stessa cartella del file originale.
    Elimini la cartella temporanea.

    Mi sembra seplice da fare.
    Poi se ci sono altre soluzioni non ne conosco.


  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    il file lo devono vedere e usare tutti. E' un file condiviso nella rete locale.
    Se io lo ho aperto con excel e il mio collega lo apre, non puo scrivere, solo leggere.

    Il file ha una colonna ID .... fate conto che io leggendo il file excel con php devo prendere l'ultimo ID(univoco e incrementale) e scrivere l'id a seguire.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    398
    flock è una funzione che ti consente di gestire i lock ma non lokka il file fisicamente sul file system. E' lo script stesso che deve gestire il lock.

    L'unica possibilità che mi viene in mente è cambiare i diritti del file incriminato e metterlo in sola lettura (http://it.php.net/manual/en/function.chmod.php)

    Rimane il problema che se un utente ha aperto il file in excel tramite cartella condivisa e tu gli cambi i diritti sotto il naso via script php e lui fa delle modifiche si ritrova che non riesce a salvarle e quindi perde il lavoro.
    O ancora aspetta che tu hai finito di bloccare il file poi salva e perdi le tue modifiche.

  5. #5
    il file lo devi gestire interamente via php. Nel senso: ti metti su un database o dove ti pare l'informazio di lock e l'utente che lo sta usando, se un altro utente usando php prova ad accedere, il sistema legge che un altro utente ha il lock (flag in db) e lo fa vedere solo in lettura.

    Se il file viene usato aprendolo anche con Excel, non vedo molte strade percorribili.... puoi scoprire se microsoft, come con excel, quando apri un file con Excel questo crei un file nascosto per il lock, e quindi controllarne la presenza o meno...
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.