Foros del Web » Programando para Internet » PHP »

condicionar carga con mimetype

Estas en el tema de condicionar carga con mimetype en el foro de PHP en Foros del Web. Amigos. Tengo una página llamada upload donde he creado un array con los tipos de mimetype que acepto, entre ellos los que son de mayor ...
  #1 (permalink)  
Antiguo 22/11/2005, 08:35
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 19 años
Puntos: 1
condicionar carga con mimetype

Amigos.

Tengo una página llamada upload donde he creado un array con los tipos de mimetype que acepto, entre ellos los que son de mayor importancia son:model/vnd.dwf para visualizar planos y archivos zip application/zip.

y es en estos donde tengo problemas porque no me deja subir a la carpeta.

Código PHP:

$tipoArray 
=array("application/acad","image/jpeg","image/gif","image/pjpeg","image/bmp","image/png",
"image/x-windows-bmp","application/msword","application/vnd.ms-excel",
"application/vnd.ms-powerpoint","application/pdf","multipart/x-zip",
"application/zip","application/x-zip-compressed","application/x-compressed",
"drawing/x-dwf ","model/vnd.dwf","image/vnd.dwg","image/x-dwg","text/plain");

$tipo $_FILES['file']['type']; // reconoce el tipo
function VerificarTipo($tipo,$tipoArray){ // función para check si existe el formato
    
$count count($tipoArray);
    for(
$i=0;$i<$count;$i++){
        if(
$tipo==$tipoArray[$i]){
            return 
true;
            break;
        }
    }
    
header("location: error_upload.php");
    return 
false;
    break;
}



if(
is_uploaded_file($_FILES['file']['tmp_file'])); // verifica carga de archivo

    if(
VerificarTipo($tipo,$tipoArray))
    
//if(($_FILES['file']['type']=="image/pjpeg")||($_FILES['file']['type']=="image/jpg")&&($_FILES['file']['size']<100000))
    
{
            
//echo"por aquí 3";
                    
if(opendir($folder) && strpos($folder,"/")){
                    
move_uploaded_file($_FILES['file']['tmp_name'], $folder.$_FILES['file']['name'] ); // guardado en la carpeta
                       
echo"Upload Exitoso";
                    exit;
                    }
    }else{
            echo 
"La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br>            <li>se permiten archivos de 100 Kb máximo.</td></tr></table>";
             echo
"Tamaño de archivo no permitido o tipo erroneo";
             exit;
    }

Cuando hace la verificación en la función siempre me termina direccionando al error_upload.php

Okey solucione el problema en parte el problema del ZIP, resulta que estoy probando con dos compresores WINZIP y WINRAR probe con un archivo winzip y lo ha subido sin problemas, pero con el winrar sigue con problemas ¿sera que entonces no es lo mismo usar cualquier compresor y definirlo como zip, sino que cada uno necesita un mime distinto? el tema del dwf todavía no logro hacerlo funcionar

Última edición por under_ground; 22/11/2005 a las 08:59
  #2 (permalink)  
Antiguo 22/11/2005, 08:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Un consejo ...

header("location: error_upload.php");
return false;
break;

El motivo de hacer un "location" normalmente implica que tu deseas abandonar la ejecución de ese script en ese punto para llamar a otro (página/script/url en general) .. por ende, puedes y deberías hacer un "exit" en ese punto en lugar de un return (para salir de la función).

De hecho haces un "location" pero luego (bajo el "else" de la llamada a esa función) muestras cierta salida (echo "algo") ... lo cual no es correcto.

Tu función "VerificarTipo()" .. la puedes solventar usando:
in_array()
www.php.net/in_array

Un saludo,
  #3 (permalink)  
Antiguo 22/11/2005, 08:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Sobre los problemas con ciertos formatos MIME, revisa los que tu servidor HTTP acepta y PHP.

Revisa la documentación:
http://www.php.net/mime_magic

Un saludo,
  #4 (permalink)  
Antiguo 22/11/2005, 09:00
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 19 años
Puntos: 1
como siempre gracias Cluster los revisaré
  #5 (permalink)  
Antiguo 22/11/2005, 09:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Okey solucione el problema en parte el problema del ZIP, resulta que estoy probando con dos compresores WINZIP y WINRAR probe con un archivo winzip y lo ha subido sin problemas, pero con el winrar sigue con problemas ¿sera que entonces no es lo mismo usar cualquier compresor y definirlo como zip, sino que cada uno necesita un mime distinto? el tema del dwf todavía no logro hacerlo funcionar
En ese caso .. verifica exactamente (haz un echo $tipo ...) que formato mime se reconoce con ese tipo de archivos (si es que lo reconoce).

Un saludo,
  #6 (permalink)  
Antiguo 22/11/2005, 09:35
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 19 años
Puntos: 1
Cluster ya estas en la lista oficial de gente que tendrá regalos para esta navidad de parte mia jajaja funciona excelente y como me recomendaste imprimi el mensaje por pantalla y luego simplemente agregue los tipos.

Por otro lado mejorare el código por aún quiero verificar si el archivo que fue ingresado se esta repitiendo para evitar la duplicación o más bien que se piesen los archivos.

Haber si después publico el código definitivo para que sirva a la gente del foro.

+ Gracias
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 19:58.