Foros del Web » Programando para Internet » PHP »

Problemas con los adjuntos .rar y .zip

Estas en el tema de Problemas con los adjuntos .rar y .zip en el foro de PHP en Foros del Web. Hola He estado mirando varios hilos que parecían tener el mismo problema pero se referían al uso del array y a la utilización de $_FILES ...
  #1 (permalink)  
Antiguo 08/03/2011, 10:32
 
Fecha de Ingreso: noviembre-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Problemas con los adjuntos .rar y .zip

Hola

He estado mirando varios hilos que parecían tener el mismo problema pero se referían al uso del array y a la utilización de $_FILES para solucionar este problema, y creo que son correctos en este script.

El problema está en que no adjunta archivos .rar ni .zip. Recoge bien todos los datos y los envía correctamente, incluso los adjunto que no son .rar o .zip, como los .jpeg, y .gif.

He probado a definir los archivos rar/zip en el array como

'application/zip'=>1,
'application/rar'=>1

a extenderlos

'application/zip'=>1,
'application/x-zip-compressed'=>1,
'application/rar'=>1,
'application/x-rar-compressed'=>1

y de forma general como

'application/octet-stream'=>1


Pero nunca consigo recibirlos.

El script lo que hace es recibir un formulario con adjuntos y enviarlo a una dirección de email automáticamente. La parte del formulario la he omitido ya que no da ningún problema. El problema lo dan los adjuntos rar/zip solamente.

Alguna idea?

Muchas gracias.


Código PHP:

<?php
function mailMe($subject,$message,$fileName){
    

// Read POST request params into global vars
//$to      = "[email protected]";
$to      "[email protected]";
$from    "www.domain.com <[email protected]>";
//$subject = $_POST['subject'];
//$message = $_POST['message'];

// Obtain file upload vars
$fileatt      $_FILES[$fileName]['tmp_name'];
$fileatt_type $_FILES[$fileName]['type'];
$fileatt_name $_FILES[$fileName]['name'];

$headers "From: $from";

// allowed file types to attach
$allowed_file_types = array('image/jpeg'=>1,'image/pjpeg'=>1,'image/gif'=>1,'image/png'=>1,'image/x-png'=>1,'application/zip'=>1,'application/rar'=>1);

//echo '<pre>';
//var_export($_FILES);
//echo '</pre>';


if (isset($_FILES[$fileName]['name']) && is_uploaded_file($fileatt) && isset($allowed_file_types[$fileatt_type])) {
    
  
// Read the file to be attached ('rb' = read binary)
  
$file fopen($fileatt,'rb');
  
$data fread($file,filesize($fileatt));
  
fclose($file);

  
// Generate a boundary string
  
$semi_rand md5(time());
  
$mime_boundary "==Multipart_Boundary_x{$semi_rand}x";
  
  
// Add the headers for a file attachment
  
$headers .= "\nMIME-Version: 1.0\n" .
              
"Content-Type: multipart/mixed;\n" .
              
" boundary=\"{$mime_boundary}\"";

  
// Add a multipart boundary above the plain message
  
$message "This is a multi-part message in MIME format.\n\n" .
             
"--{$mime_boundary}\n" .
             
"Content-Type: text/plain; charset=\"UTF-8\"\n" .
             
"Content-Transfer-Encoding: 7bit\n\n" .
             
$message "\n\n";

  
// Base64 encode the file data
  
$data chunk_split(base64_encode($data));

  
// Add file attachment to the message
  
$message .= "--{$mime_boundary}\n" .
              
"Content-Type: {$fileatt_type};\n" .
              
" name=\"{$fileatt_name}\"\n" .
              
//"Content-Disposition: attachment;\n" .
              //" filename=\"{$fileatt_name}\"\n" .
              
"Content-Transfer-Encoding: base64\n\n" .
              
$data "\n\n" .
              
"--{$mime_boundary}--\n";
}

// Send the message
$ok = @mail($to$subject$message$headers);
if (
$ok) {
  return 
true//echo "<p>Mail sent! Yay PHP!</p>";
} else {
  return 
false//echo "<p>Mail could not be sent. Sorry!</p>";
}

}
?>
  #2 (permalink)  
Antiguo 08/03/2011, 10:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problemas con los adjuntos .rar y .zip

cuando recibas el archivo zip/rar intenta imprimir cual es tu tipo, así te das cuenta que es lo que deberías agregar a tu lista de tipos...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 12/03/2011, 06:17
 
Fecha de Ingreso: noviembre-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Respuesta: Problemas con los adjuntos .rar y .zip

Cita:
Iniciado por pateketrueke Ver Mensaje
cuando recibas el archivo zip/rar intenta imprimir cual es tu tipo, así te das cuenta que es lo que deberías agregar a tu lista de tipos...
Muchas gracias, pero no los recibo, no veo ningún adjunto cuando se trata de esos archivos, tan solo cuándo son imágenes.

En el script, insertado en la página correspondiente, lo que recibe lo reenvía al correo email y lo borra del servidor, quedándo almacenado como correo.

Saludos.
  #4 (permalink)  
Antiguo 12/03/2011, 11:35
 
Fecha de Ingreso: noviembre-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Respuesta: Problemas con los adjuntos .rar y .zip

Bueno, no se cuál de todas es la correcta, pero incluyento toda esta expresión funciona en FF, IE, y Chrome.

Haciendo pruebas se puede reducir y saber cuál es la buena:

'application/zip'=>1, 'application/x-zip-compressed'=>1, 'multipart/x-zip'=>1, 'compressed/zip'.'application/x-zip'=>1,'application/x-rar-compressed'=>1, 'file/zip'=>1, 'file/x-zip-compressed'=>1,
'application/rar'=>1, 'application/x-rar-compressed'=>1, 'multipart/x-rar'=>1, 'compressed/rar'.'application/x-rar'=>1,'application/x-rar-compressed'=>1, 'file/rar'=>1, 'file/x-rar-compressed'=>1,
'application/x-compressed'=>1,'application/octet-stream'=>1

Saludos.

Etiquetas: adjuntos, rar, zip
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 10:34.