Foros del Web » Programando para Internet » PHP »

Comprimir y enviar archivos

Estas en el tema de Comprimir y enviar archivos en el foro de PHP en Foros del Web. Buenas, tengo un script que me hace un zip de unos archivos que se encuentran en el servidor. Sé cómo hacer para que se descarguen, ...
  #1 (permalink)  
Antiguo 08/11/2010, 06:10
 
Fecha de Ingreso: septiembre-2007
Mensajes: 47
Antigüedad: 16 años, 7 meses
Puntos: 0
Comprimir y enviar archivos

Buenas,

tengo un script que me hace un zip de unos archivos que se encuentran en el servidor. Sé cómo hacer para que se descarguen, pero lo que necesitaria más bien es que una vez generado ese archivo comprimido(.zip) en vez de descargarse, se envie por correo a una direccion en concreto.

Alguien podria ayudarme a completar/arreglar el código o al menos orientarme para ver que estoy haciendo mal?

Muchas gracias!!

Este es el código:

require ("zipfile.php");
$zipfile = new zipfile();
$zipfile->add_dir("docs/");
$zipfile->add_file(implode("",file("img01.jpg")), "foto.jpg");

//descarga el archivo
header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename=zipfile.zip");
echo $zipfile->file();

//hago el envio
$file = fopen("zipfile.zip", "r");
$contenido = fread($file, filesize("zipfile.zip");
$encoded_attach = chunk_split(base64_encode($contenido));
fclose($file);

$asunto="Enviar un correo con fichero adjunto";
$email="[email protected]";
$mensaje="Envio de archivo";

$cabeceras = "From: <[email protected]>\n";
$cabeceras .= "Reply-To: $email\n";
$cabeceras .= "MIME-version: 1.0\n";
$cabeceras .= "Content-type: multipart/mixed; ";
$cabeceras .= "boundary=\"Message-Boundary\"\n";
$cabeceras .= "Content-transfer-encoding: 7BIT\n";
$cabeceras .= "X-attachments: fichero.bin";

$body_top = "--Message-Boundary\n";
$body_top .= "Content-type: text/plain; charset=US-ASCII\n";
$body_top .= "Content-transfer-encoding: 7BIT\n";
$body_top .= "Content-description: Mail message body\n\n";

$cuerpo = $body_top.$mensaje;

$nombref="zipfile.zip"
$cuerpo .= "\n\n--Message-Boundary\n";
$cuerpo .= "Content-type: Binary; name=\"$nombref\"\n";
$cuerpo .= "Content-Transfer-Encoding: BASE64\n";
$cuerpo .= "Content-disposition: attachment; filename=\"$nombref\"\n\n";
$cuerpo .= "$encoded_attach\n";
$cuerpo .= "--Message-Boundary--\n";

mail($email,$asunto,$cuerpo,$cabeceras);
  #2 (permalink)  
Antiguo 08/11/2010, 15:32
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Comprimir y enviar archivos

Hola.

usa alguna libreria para enviar el archivo, pudes usar phpmailer con esa simplemente le indicas el archivo que vas a adjuntar y listo.

Suerte.

Etiquetas: comprimir, enviar
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 15:52.