Pregunta

Estoy trabajando en un script de carga.

Si un usuario sube un archivo y ya existe Quiero advertir al usuario (esto es todo a través de ajax) y les dan la opción de reemplazarlo, o cancelar.

En lugar de mover el archivo, Tenía curiosidad si tan sólo pudiera dejar el archivo en tmp y pasar de nuevo a la ruta a ese archivo en la respuesta Ajax.

Si el usuario dice sobrescribir el archivo antiguo en esa petición ajax pasar la parte de atrás camino a PHP que sigue trabajando en el archivo.

Para que esto funcione, sin embargo necesito saber cuánto tiempo un archivo de estancias en php tmp dir

¿Fue útil?

Solución

Archivos subidos a través del poste son borrados inmediatamente después de script php termina su ejecución.

De acuerdo con php.net : "El archivo será borrado del directorio temporal al final de la solicitud si no se ha movido o renombrado."

Otros consejos

En los archivos cargados, el manual indica :

El archivo se elimina de la directorio temporal al final de la solicitud si no se ha movido lejos o cambiado de nombre.

Los archivos que se deben mantener por lo tanto debe ser trasladado a otro lugar.

En términos más generales, como su título de la pregunta podría implicar, carpetas temporales se dejan a ser limpiado por el sistema. Esto es cierto cuando el uso de funciones como tempnam o tmpfile , o simplemente al escribir en el directorio temporal (ver sys_get_temp_dir ).

En Ubuntu, esto se hace en cada reinicio del sistema, o en un intervalo de tiempo, como se define en /etc/default/rcS.

En algunas distribuciones basadas en Red Hat, se realiza mediante la utilidad tmpwatch de una tarea programada. En otros, la partición /tmp está montado utilizando el sistema de archivos tmpfs, que es similar a un disco RAM (por lo tanto se está limpiando cuando se cierra la computadora abajo).

Otro mecanismo conocido es un umbral de tamaño, lo que significa que el directorio temporal será limpiado de los archivos más antiguos cuando se alcanza un determinado tamaño.

Hay tres variables que se deben establecer en PHP para asegurarse de que la recolección de basura del directorio / tmp pasa correctamente y son:

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

Conjunto session.gc_maxlifetime sea el número de segundos que desea que cada archivo tmp al último antes de que sea eliminado. Si inicia sesión en el administrador de OpenCart, este es el número de segundos hasta que automáticamente se cerrará la sesión. Por ejemplo para establecer una media hora, que haría 60 segundos Tiempos 30 minutos lo que sería un valor de 1800 segundos.

Las otras dos variables están relacionadas con cuando el recolector de basura se ejecutará, y es importante que se establecen en los valores por encima de si usted está teniendo problemas con esto.

Más información aquí: https://www.antropy.co .uk / blog / opencart-php-session-TMP-archivos-llenado-up /

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top