Posted By

jrobinsonc on 04/05/10


Tagged


Versions (?)

Forzar la descarga de archivos


 / Published in: PHP
 

  1. function download_file($filename, $name = NULL, $mime_type = 'application/octet-stream') {
  2.  
  3. if (!is_file($filename)) {
  4. header('HTTP/1.0 404 Not Found', TRUE, 404);
  5. return FALSE;
  6. }
  7.  
  8. $name = is_null($name) ? basename($filename) : $name;
  9. $size = filesize($filename);
  10.  
  11. header('Content-Description: File Transfer');
  12. header("Content-Disposition: attachment; filename=$name");
  13. header("Content-Type: $mime_type");
  14. header("Content-Transfer-Encoding: binary");
  15. header('Expires: 0');
  16. header('Pragma: no-cache');
  17. header("Content-Length: $size");
  18.  
  19. if(@readfile($filename) === FALSE) {
  20. header('HTTP/1.0 500 Internal Server Error', TRUE, 500);
  21. }
  22. }
  23.  
  24. # Uso:
  25. download_file('archivo55.avi');
  26.  
  27. # En el segundo parametro se puede indicar con que nombre el archivo debe descargarse por defecto.
  28. download_file('archivo55.avi', 'pelicula.avi');
  29.  
  30. # Y en el tercer parametro se puede indicar el mime-type del archivo.
  31. download_file('archivo55.avi', 'pelicula.avi', 'video/x-msvideo');

Report this snippet  

You need to login to post a comment.