Domanda

Sto lavorando su uno script di upload.

Se un utente carica un file ed esiste già voglio avvertire l'utente (questo è tutto tramite ajax) e dare loro la possibilità di sostituirlo, o annullare.

Invece di spostare il file, Ero curioso di sapere se ho potuto solo lasciare il file in tmp e passare di nuovo il percorso di quel file nella risposta Ajax.

Se utente dice sovrascrivere il vecchio file in tale richiesta Ajax passa sul retro percorso php che continua a lavorare sul file.

Per questo al lavoro però ho bisogno di sapere per quanto tempo un file di soggiorni in php tmp dir

È stato utile?

Soluzione

I file caricato tramite POST vengono cancellati subito dopo script php termina la sua esecuzione.

php.net : "Il file sarà eliminato dalla directory temporanea al termine della richiesta se non è stato mosso e rinominato".

Altri suggerimenti

Per i file caricati, il manuale indica :

  

Il file sarà eliminato dalla   directory temporanea al termine della   richiesta se non è stato allontanato   o rinominato.

I file che devono essere conservati dovrebbe quindi essere spostato in un'altra posizione.

Più in generale, come il titolo potrebbe implicare domanda, le cartelle temporanee sono lasciati per essere ripulito da parte del sistema. Questo è vero quando si utilizzano funzioni come tempnam o tmpfile , o semplicemente quando si scrive nella directory temporanea (vedi sys_get_temp_dir ).

In Ubuntu, questo viene fatto ad ogni riavvio del sistema, o in un intervallo di tempo, come definito nella /etc/default/rcS.

In alcune distribuzioni basate Red Hat, è stata fatta utilizzando l'utilità tmpwatch da un cronjob. In altri, la partizione /tmp è montata utilizzando il file system tmpfs, che è simile ad un disco RAM (quindi da pulire quando si chiude la computer verso il basso).

Un altro meccanismo noto è una soglia dimensionale, il che significa che la directory temporanea verrà ripulito dai file più vecchi quando si raggiunge una certa dimensione.

Ci sono tre variabili che devono essere impostati in PHP per assicurarsi che Garbage Collection della directory / tmp avviene in modo corretto e sono:

session.gc_maxlifetime = 21600
session.gc_probability = 1
session.gc_divisor = 100

Set session.gc_maxlifetime di essere il numero di secondi che si desidera ogni file tmp all'ultimo prima di essere eliminati. Se si effettua il login al admin in OpenCart, questo è il numero di secondi fino a quando non verrà automaticamente disconnessi. Ad esempio, per impostare una mezz'ora, si dovrebbe fare 60 secondi tempi di 30 minuti che sarebbe un valore di 1800 secondi.

Le altre due variabili sono legate alla quando il Garbage Collector verrà eseguito, ed è importante che essi siano impostati sui valori di cui sopra, se avete problemi con questo.

Più informazioni su: https://www.antropy.co .uk / blog / OpenCart-php-session-TMP-file-riempimento-up /

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top