descargarArchivos.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. ob_start(); // Limpia el buffer por errores de salida
  3. // Permite un mayor tiempo de respuesta del socket
  4. ini_set('memory_limit', '-1');
  5. $strModulo = $_POST['idModulo'];
  6. if(empty($strModulo)){
  7. $strModulo = 'ERR';
  8. }
  9. // Variables de respuesta
  10. $estatus = 'EXITO';
  11. $errorDescripcion = '';
  12. $datosRecibidos = array();
  13. if($_SERVER["REQUEST_METHOD"] == "POST") {
  14. // Variables Recibidas
  15. $accion = $_POST['accion'];
  16. // Acciones Válidas
  17. $arrAccionesValidas = array('descargarArchivo');
  18. if(in_array($accion, $arrAccionesValidas)){
  19. switch ($accion){
  20. case 'descargarArchivo':
  21. $ruta = $_POST['ruta'];
  22. if(!empty($ruta)){
  23. $nombreArchivo = 'archivo.pdf';
  24. $archivoParaDescargar = base64_decode($ruta);
  25. if(file_exists($archivoParaDescargar)){
  26. $arrDatosRuta = explode('/', $archivoParaDescargar);
  27. $nombreArchivo = array_pop($arrDatosRuta);
  28. $rData = file_get_contents($archivoParaDescargar);
  29. $data = base64_encode($rData);
  30. $type = 'data:application/octet-stream;base64,';
  31. // Enviamos los datos de respuesta
  32. $jsonResponse = array(
  33. 'fileName' => $nombreArchivo,
  34. 'data' => $data,
  35. 'type' => $type
  36. );
  37. echo json_encode($jsonResponse);
  38. exit;
  39. }else{
  40. $estatus = 'ERROR';
  41. $errorDescripcion = 'SPS003 (' . $strModulo . ') - El archivo solicitado no existe.';
  42. goto fin;
  43. }
  44. }else{
  45. $estatus = 'ERROR';
  46. $errorDescripcion = 'SPS003 (' . $strModulo . ') - Ocurrió un problema al descargar el archivo.';
  47. goto fin;
  48. }
  49. break;
  50. }
  51. }else{
  52. $estatus = 'ERROR';
  53. $errorDescripcion = 'SPS001 (' . $strModulo . ') - La acción solicitada no es válida.';
  54. goto fin;
  55. }
  56. }else{
  57. $estatus = 'ERROR';
  58. $errorDescripcion = 'SPS002 (' . $strModulo . ') - Ocurrió un error al procesar la petición.';
  59. goto fin;
  60. }
  61. fin :
  62. $jsonResponse = array(
  63. 'estatus' => $estatus,
  64. 'errorDescripcion' => $errorDescripcion,
  65. 'datosRecibidos' => $datosRecibidos
  66. );
  67. echo json_encode($jsonResponse);