elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Excel generado, enviarlo por correo.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Excel generado, enviarlo por correo.  (Leído 4,448 veces)
Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Excel generado, enviarlo por correo.
« en: 2 Agosto 2013, 21:39 pm »

Hola estimados, actualmente genero un excel desde php, pero mi idea es que no se descargue , sino que se envie el excel automaticamente por correo, como puedo hacer esto?

Actualmente uso BiffWriter y este es el metodo que genera el excel para descargarlo.

Código
  1. function xlsParse($fname = '')
  2. {
  3. $fstorage = !empty($fname);
  4. foreach($this->maxcolwidth as $key => $value) {
  5. $this->SetcolWidth($key, $key, $value);
  6. }
  7. if ($this->fonts = 0) {
  8. $this->xlsSetFont('Arial', 10, $font_format = FONT_NORMAL);
  9. }
  10. $this->setCodePage();
  11. $this->EOF();
  12. $this->SetDefFormat();
  13. $this->assemblePageBreaks();
  14. $this->setPane();
  15. $this->setWindow();
  16. if ($fstorage) {
  17. $fp = fopen($fname, "wb");
  18. }
  19. else {
  20. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  21. header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  22. header("Cache-Control: no-store, no-cache, must-revalidate");
  23. header("Cache-Control: post-check=0, pre-check=0", false);
  24. header("Pragma: no-cache");
  25. header("Content-Disposition: attachment; filename=$this->outfile");
  26. header("Content-Type: application/octet-stream");
  27. }
  28. $len1 = count($this->parse_order);
  29. $len2 = count($this->stream);
  30. for ($x = 0 ; $x < $len1; $x++) {
  31. $code = array_shift($this->parse_order);
  32. if (in_array($code, $this->stream, TRUE)) {
  33. for ($y = 0; $y < $len2; $y++) {
  34. if ($code === $this->stream[$y]) {
  35. if ($fstorage) {
  36. fwrite($fp, $this->stream[$y + 1], strlen($this->stream[$y + 1]));
  37. }
  38. else {
  39. print $this->stream[$y + 1];
  40. }
  41. }
  42. }
  43. }
  44. }
  45. if ($fstorage) {
  46. fclose($fp);
  47. }
  48. return($fname);
  49. }

Para descargarlo yo lo uso asi
Código
  1. $xsl->xslParse();

Pero mi idea es hacerlo asi

Código
  1. $mail->AddAttachment($xls->xlsParse());

Para enviarlo adjunto sin que se descargue, a traves de php mailer, alguien me puede orientar por favor?

Gracias de antemano, saludos.


En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Excel generado, enviarlo por correo.
« Respuesta #1 en: 2 Agosto 2013, 22:30 pm »

Mi lógica dice que se tiene que descargar en este caso sería en la carpeta temporal de la pc y de ahí enviarlo y eliminarlo si así se desea.

Otra opción que veo es crear el file en una carpeta del servidor puedes usar ob_start() ob_end_clean() para obtener el stream con los datos y guardarlos usando fopen/fwrite/fclose en una carpeta en el servidor y posteriormente obtener el archivo y enviarlo con phpmailer.



En línea

abc
Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Re: Excel generado, enviarlo por correo.
« Respuesta #2 en: 2 Agosto 2013, 23:38 pm »

Gracias por responder Darhius, voy a esperar nuevos puntos de vista para ver por cual opto mientras intento por mi cuenta, saludos  ;D
En línea

Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Re: Excel generado, enviarlo por correo.
« Respuesta #3 en: 8 Agosto 2013, 17:25 pm »

Al final lo que hice es crear una carpeta en el servidor con el id de la session, escribo el fichero sobre esa carpeta, lo envio por correo y luego borro la carpeta con el contenido.

Gracias por su ayuda, saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines