Estoy tratando de eliminar una imagen (.jpg) del servidor después de la primera vez que se mostró. Pero el archivo se elimina (desvincula();) antes de mostrarse. Ya he intentado con sleep() pero esto solo demora la carga y después de todo el archivo se elimina antes de mostrarse.PHP :: Cómo se borra un archivo del servidor después de leerlo. Unlink() se ejecuta antes de
Respuesta
Esto se debe a que todo PHP se ejecuta en la pila antes de representar la salida. Tendrá que configurar una función para marcar el archivo para su eliminación en la carga de la página siguiente.
O puede configurar algunos AJAX para eliminar la imagen después de que el documento se haya cargado.
La salida se procesa _durante la ejecución de PHP. Eso es lo que hacen los scripts PHP. –
Puede usar mod_rewrite para redirigir las solicitudes jpg a un script que carga la imagen en la memoria, borra el archivo y luego sirve la imagen. OMI, esta es la solución más simple y fácil. insegura ejemplo a continuación ...
Ejemplo archivo .htaccess:
# Turn on URL rewriting
RewriteEngine On
# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]
index.php
<?php
$image_file = $_SERVER['PATH_INFO'];
// clean data, strip current/parent directory to block transversal, etc...
if (file_exists('images/' . $image_file))
{
$image_data = file_get_contents('images/' . $image_file);
// determine image mimetype using phps mimetype functions
unlink('images/' . $image_file);
header('Content-Type: image/jpeg');
echo $image_data;
}
No estoy seguro de que el OP desee eliminar _todas las imágenes JPG después de la primera visualización. Además, su '.htaccess' parece completamente ajeno a la pregunta/respuesta? –
@Tomalak, asumí que OP quería una secuencia de comandos de imagen de vista única. El código anterior es solo un ejemplo, tendría que modificarlo para reflejar la ruta correcta de las imágenes, agregar la detección de tipo MIME, etc. Utiliza htaccess para esencialmente solicitudes de proxy a través de un script php. El script devuelve la imagen y la elimina (algunos hosts de imágenes tienen una sola vista, es útil si desea compartir una imagen con una sola persona y no desea que se convierta en un accesorio permanente en Internet). –
Quizás la respuesta debería incluir eso como una advertencia, antes de que regrese quejándose de que hemos borrado todas sus fotos :) –
- Copiar el contenido de imagen del archivo en la memoria;
- Eliminar el archivo de imagen;
- Transmita los contenidos originales de la memoria a la salida.
Lo mejor que puedo hacer con la vaguedad, me temo.
- 1. script php que se borra después de la finalización
- 2. Descarga del archivo .zip se ejecuta un archivo dañado php
- 3. Asp.Net Mvc - ¿se ejecuta onactionexecuted antes o después de ActionResult.Execute?
- 4. ¿Cómo se ejecuta exactamente un script PHP?
- 5. ¿Cómo se ejecuta un archivo .bat desde PHP?
- 6. ¿Cómo se ejecuta la función ajax antes de la descarga?
- 7. ¿Cómo se ejecuta una secuencia de comandos de Python en el lado del servidor usando jQuery?
- 8. Manejo de excepciones: ¿Finalmente se ejecuta después del lanzamiento?
- 9. Python: ¿cómo se ejecuta un archivo .py?
- 10. ¿Se ejecuta doFilter() antes o después de finalizar el trabajo del servlet?
- 11. Limpieza del servidor después de que un cliente se desconecta
- 12. SqlConnection.ClearAllPools, ¿qué se borra?
- 13. File.Delete No se borra el archivo
- 14. JavaScript se ejecuta después de google analytics
- 15. Mi información no se borra después de desinstalar la aplicación
- 16. El método @parameters se ejecuta antes del método @beforeclass
- 17. Se adjunta un carácter especial antes de §
- 18. Grails: ¿cómo se ejecuta el código antes de cada guardado?
- 19. servicio Tomcat no se ejecuta después de instalar XAMPP
- 20. ¿Cuándo se borra localStorage?
- 21. ejecutivo de PHP() no se ejecutará comando shell cuando se ejecuta a través del navegador
- 22. ¿Cómo evitar los riesgos de seguridad de UNLINK en PHP?
- 23. ¿Cómo eliminar archivos cuando se borra un registro?
- 24. ¿Cómo se borra User.Identity.Name en ASP.NET MVC?
- 25. ¿Cómo se ejecuta JavaScript después de cargar la página?
- 26. ¿WeakHashMap se borra durante un GC completo?
- 27. Continuar ejecutando un script php después de que se devuelva la página
- 28. ¿Por qué onAuthorization se ejecuta antes de la autenticación?
- 29. ¿Cómo puedo encontrar la versión de php que se ejecuta en un nombre de dominio distinto?
- 30. RMagick advertencia mientras se ejecuta el servidor
Si publica su código relevante, es muy probable que esto sea una solución fácil. Sin ver su código, probablemente no obtendrá ninguna respuesta (útil). –