Foros del Web » Programando para Internet » PHP »

Desempaquetar un archivo ZIP o RAR

Estas en el tema de Desempaquetar un archivo ZIP o RAR en el foro de PHP en Foros del Web. Hola a tod@s: Existe alguna forma de subir un archivo tipo ZIP o RAR al servidor y desempaquetar su contenido en un directorio del servidor? ...
  #1 (permalink)  
Antiguo 26/03/2007, 16:01
 
Fecha de Ingreso: julio-2005
Ubicación: Guatemala
Mensajes: 165
Antigüedad: 18 años, 9 meses
Puntos: 0
Desempaquetar un archivo ZIP o RAR

Hola a tod@s:

Existe alguna forma de subir un archivo tipo ZIP o RAR al servidor y desempaquetar su contenido en un directorio del servidor?

Gracias por su apoyo. Saludos.
__________________
Guatemala - Guatemala
  #2 (permalink)  
Antiguo 26/03/2007, 16:36
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 1 mes
Puntos: 10
Re: Desempaquetar un archivo ZIP o RAR

Hace tiempo tuve la misma duda y encontré ésto, espero te sirva.

Código:
<?php 
function zip_extract_to($file, $dir, $rewrite = true) {
    if (! extension_loaded('zip')) {
        trigger_error('La librería zip debe de estar cargada.', E_USER_WARNING);
        return false;
    }

    if (!is_dir($dir)) mkdir($dir);

    $zip = zip_open($file);

    while ($file = zip_read($zip)) {
        if (substr(zip_entry_name($file), -1, 1) == '/') {
            if (!is_dir($ddir = $dir . zip_entry_name($file))) mkdir($ddir);
            continue;
        } else {
            if (zip_entry_open($zip, $file, 'rb')) {
                $code = zip_entry_read($file, zip_entry_filesize($file));
                
                if (!file_exists($ffile = $dir . zip_entry_name($file)) || ($rewrite && is_writeable($ffile))) {
                    fwrite($fp = fopen($ffile, 'w'), $code);
                    fclose($fp);
                }
            }
        }
    }

    zip_close($zip);

    return true;
}

zip_extract_to('C:\ruta_completa_del_archivo\prueba.zip', 'directorio_destino/', true);

?>
__________________
TolerantX
http://tolerantx.com
Linux User #385226
  #3 (permalink)  
Antiguo 09/04/2007, 09:46
 
Fecha de Ingreso: julio-2005
Ubicación: Guatemala
Mensajes: 165
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Desempaquetar un archivo ZIP o RAR

Gracias, aunque...

cuando ejecuto el script me marca el error que: La librería zip debe de estar cargada.

La pregunta, es qué, cómo debo conseguir e instalar esa librería, por ahora lo he probado en el localhost.

¿qué hago ahora para poder tener acceso a esa librería y probar adecuadamente el script?

Gracias, saludos.
__________________
Guatemala - Guatemala
  #4 (permalink)  
Antiguo 20/04/2007, 05:03
Jiu
 
Fecha de Ingreso: abril-2007
Mensajes: 13
Antigüedad: 17 años
Puntos: 0
Re: Desempaquetar un archivo ZIP o RAR

a mí me ocurre el mismo problema...
  #5 (permalink)  
Antiguo 20/04/2007, 05:53
 
Fecha de Ingreso: febrero-2007
Mensajes: 6
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Desempaquetar un archivo ZIP o RAR

Hola, yo también tuve el mismo problema, lo que pasa que yo quería extraer sólo algunos archivos del zip, no todos y no encontraba la manera de hacerlo con la librería de php.
Así que la solución que he optado es hacer:
exec("unzip -j -o $zipfile '*.[aA][lL][bB]*' -d $dir");
  #6 (permalink)  
Antiguo 20/04/2007, 08:25
Avatar de charlyrosero  
Fecha de Ingreso: julio-2006
Mensajes: 161
Antigüedad: 17 años, 9 meses
Puntos: 5
Re: Desempaquetar un archivo ZIP o RAR

En estos ultimos dias, tuve el mismo inconveniente,y logre solucionarlo de la siguiente manera:

utilize winrar en lina de comando por medio de un archivo ejecutable por lotes (.bat), con la siguiente sintaxis

Explicacion
Cita:
1 ejecuto desde linea de comando el ejecutable winrar.exe (cd c:\archivos de prog.........)

2 esta es la sintaxis para descomprimir

rar e -o+ dir archivo comprimido dir ruta descompresion

pdta

e = descomprimir
-o+ = reemplaza archivos existentes

Cita:
cd C:\RAR\
rar.exe
rar e -o+ D:DATA\imagenes.rar D:DATA\imagenes_portada
espero que les sirva !!!!!
  #7 (permalink)  
Antiguo 23/04/2007, 03:54
Jiu
 
Fecha de Ingreso: abril-2007
Mensajes: 13
Antigüedad: 17 años
Puntos: 0
Re: Desempaquetar un archivo ZIP o RAR

Muchas gracias por contestar, pero la línea
exec("unzip -j -o $file '*.[aA][lL][bB]*' -d $ruta_destino");
no me descomprime, en algo deberé estar fallando...
  #8 (permalink)  
Antiguo 23/04/2007, 05:52
Jiu
 
Fecha de Ingreso: abril-2007
Mensajes: 13
Antigüedad: 17 años
Puntos: 0
Re: Desempaquetar un archivo ZIP o RAR

Hola de nuevo,
cómo se carga una librería??? No basta con incluirla en el archivo .php que hace mención a una de sus funciones?

Muchas gracias de antemano
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 23:44.