Foros del Web » Programando para Internet » PHP »

enviar .doc como attachment...

Estas en el tema de enviar .doc como attachment... en el foro de PHP en Foros del Web. Alguien me puede decir por el amor de dios y la virgen maria como se puede hacer esto, me volvi loco hoy buscando por todas ...
  #1 (permalink)  
Antiguo 10/05/2003, 14:50
 
Fecha de Ingreso: febrero-2001
Mensajes: 1.374
Antigüedad: 23 años, 2 meses
Puntos: 11
enviar .doc como attachment...

Alguien me puede decir por el amor de dios y la virgen maria como se puede hacer esto, me volvi loco hoy buscando por todas partes y no encontre nada coherente que explique como hacerlo. Google no me tiro ninguna punta. Mil gracias al que me puede iluminar y decirme, mira flaco, el tema es asi y asi...

Lo que me llega por mail parece el codigo de la matrix reloaded o_O!!
  #2 (permalink)  
Antiguo 11/05/2003, 03:42
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 22 años, 6 meses
Puntos: 6
Si lo que te interesa es saber como se envian archivos atravez del protocolo SMTP, usando php. Visita esta liga http://www.phpbuilder.com/columns/kartic20000807.php3 .

Si lo que necesiats es uan solucion de implementacion pues hay muchas clases escritas en php que te resuelven este problema una de ellas ya viene instalada junto con php, y es uan clase que pertenece a la pear de php http://pear.php.net/manual/en/package.mail.php
  #3 (permalink)  
Antiguo 11/05/2003, 12:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Yo uso la classe:

PHP Mailer:
http://phpmailer.sourceforge.net

Permite enviar e-mail via: mail() de PHP, SMTP (varios incluso a la vez por si falla uno en el envio ..), y directo al sendmail si lo usas ...

Eso como "transportadores" .. En cuanto a funciones:
Envia HTML/texto plano simultaneamente (multiparte), Atattachments sin problemas .. e incluso archivos incrustados en HTML (como imagenes) para que leas un e-mail "off line" ...


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 11/05/2003, 13:34
 
Fecha de Ingreso: febrero-2001
Mensajes: 1.374
Antigüedad: 23 años, 2 meses
Puntos: 11
Gracias hermiño y cluster, le voy a pegar una mirada a ver si encuentro algun dato que me ayude a solucionar el problema.

Cluster, yo estoy usando el mismo :)


Mmm, ahora me llegan bien los archivos, pero tengo un problema mayor...

me llegan asi: phpH81703 (26k)!!!!!!!

Sin extencion ni nada y peor aun, cuando antes de subir un archivo uno hace click en el boton "browse...", la ruta al archivo se pierde cuando los datos se envian al servidor, el .doc se convierte en .tmp... y esto me impide controlar que extension se esta mandando para asi poder configurar el header.

una terrible pesadilla


Por otro lado Cluster, que es mejor, subir un archivo .doc a la base de datos o el archivo a una carpeta y el enlace de referencia a la base de datos? cual de los dos metodos es el mejor? gracias.

Última edición por Tukzone; 11/05/2003 a las 13:48
  #5 (permalink)  
Antiguo 11/05/2003, 13:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No, Tukzne .. ese "efectito" que estas notando no es un "bug" .. jeje es un "hack" del foro (de los vBulletin que se instaló recientemente) .. que hace eso mismo .. si respondes tu mismo a un mensaje seguido te los "junta" xDDD ...

Sobre tu pregunta de lo de meter en la BD o no .. bueno, sería cosa de que abrieras otro tema . pero bueno .. Yo digo q si y no .. osese:

Mysql tiene sus limitaciones en cuanto a tamaño (mucho menores la mayoria de veces que lo que tu servicio de hosting te ofrezca para tu "FTP" comun ..). Tambien el tamaño máximo de los archivos lo limita Msyql (se puede cambiar .. pero si tienes acceso al S.O. ...)

Mysql accede mas rápido (según dice) a un "binario" en su BD que el acceso al sistema de archivos del S.O. (tampoco será mucha la diferencia ..).

Por ende .. Lo que suelo "recomendar" es algo tipo:

Si tienes muchas imagenes pequeñas .. te vendría bien Msyql y los datos en Binario en un campo de esta (hablo de 50 k o menos por archivo) .. Si tienes imagenes "grandes" y pcoas .. tal vez con usar el método de referencia de la ubicación te sobra y veras que "Msyql" va más "desahogado" ...

Siempre te encontraras a los "fanáticos" de .. Todo en binario a la BD o .. ni hablar de binarios en las BD .. Lo que es Msyql se lo gestiona bastante bien los binarios (pequeños) ..

Por otro lado .. imagina un "DUMP" o copia de seguridad de tu BD (mejor dicho de tus "datos" ... ) si tus archivos binarios los tubieras en directorios de tu servidor .. deberias hacer el "backup" de ambos datos (la BD y los binarios) .. mientras que si lo tienes todo en "Mysql" .. de un "viaje" lo tienes todo "empaquetado" y listo para restaurar en caso que sea necesario.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 11/05/2003, 13:38
 
Fecha de Ingreso: febrero-2001
Mensajes: 1.374
Antigüedad: 23 años, 2 meses
Puntos: 11
gracias cluster, disculpa que te joda con todo esto pero es que ando bastante estresado

...y lo del hack esta buenisimo!! por un momento pense que habia encontrado un bug snif, snif. Mi carrera de beta tester duro apenas 20 segundos :)
  #7 (permalink)  
Antiguo 11/05/2003, 13:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Jeje .. Tukzone .. ahora me borrastes la pregunta que hacias sobre Msyql (o será que vi visiones? ..) .. se me queda fuera de lugar mi respuesta 0_o

Sobre los problemas que tienes .. mm podrías poner el código que usas .. (ya te comenté que uso esa classe phpmailer ... ) a ver si lo probamos .. pero, hasta la fecha no he tenído problemas con "attach" usando esa classe.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 11/05/2003, 13:54
 
Fecha de Ingreso: febrero-2001
Mensajes: 1.374
Antigüedad: 23 años, 2 meses
Puntos: 11
cluster, me confundi, no estoy usando esa, fue producto de mi estres, estoy usando una similar pero no tan buena. Pongo la parte mas importante que es la que procesa el archivo:

Código PHP:
function _build_attachement(){

    
$this->xheaders["Content-Type"] = "multipart/mixed;\n boundary=\"$this->boundary\"";

    
$this->fullBody "This is a multi-part message in MIME format.\n--$this->boundary\n";
    
$this->fullBody .= "Content-Type: text/plain; charset=$this->charset\nContent-Transfer-Encoding: $this->ctencoding\n\n" $this->body ."\n";
    
    
$sepchr(13) . chr(10);
    
    
$ata= array();
    
$k=0;
    
    for( 
$i=0$i count$this->aattach); $i++ ) {
        
        
$filename $this->aattach[$i];
        
$basename basename($filename);
        
$ctype $this->actype[$i];    // content-type
        
$disposition $this->adispo[$i];
        
        if( ! 
file_exists$filename) ) {
            echo 
"<font color=\"#FF0000\"><b>Attachment $filename can't be found</b></font><br>&nbsp;<br>";
        }
        
$subhdr"--$this->boundary\nContent-type: $ctype;\n name=\"$basename\"\nContent-Transfer-Encoding: base64\nContent-Disposition: $disposition;\n  filename=\"$basename\"\n";
        
$ata[$k++] = $subhdr;

        
$lineszfilesize$filename)+1;
        
$fpfopen$filename'r' );
        
$ata[$k++] = chunk_split(base64_encode(fread$fp$linesz)));
        
fclose($fp);
    }
    
$this->fullBody .= implode($sep$ata);

el tema es que me lo manda bien, pero con un nombre cualquiera y sin extension
  #9 (permalink)  
Antiguo 11/05/2003, 14:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Buff .. yo ahí ando perdido con los MIME y demas hierbas .. El caso que podrías probar la classe que te recomiendo, por lo menos para fijarte en el método que usa para hacer el mail en "MIME multiparte" o como le llamen.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 11/05/2003, 14:27
 
Fecha de Ingreso: febrero-2001
Mensajes: 1.374
Antigüedad: 23 años, 2 meses
Puntos: 11
Cluster, capo de los capos, mil gracias, en serio. Ya esta, el problema estaba aca...

Content-Disposition: attachment; filename=\"$basename\""

Vi que escribiste MIME y me quede pensando hasta que volvi a revisar todo de nuevo.

lo que tengo que cambiar es basename por el nombre que yo quiera y listo, en base al archivo que me manden le pongo la extencion.

gracias por ayudarme cluster, en serio, te debo una ;)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:46.