Foros del Web » Programando para Internet » ASPX (.net) »

Convertir fichero a .zip

Estas en el tema de Convertir fichero a .zip en el foro de ASPX (.net) en Foros del Web. Estoy haciendo una pantalla de Upload y Download de archivos. El Upload será un archivo excel, pero el download debería ser sólo descarga: (es decir ...
  #1 (permalink)  
Antiguo 26/04/2006, 04:33
 
Fecha de Ingreso: octubre-2005
Mensajes: 27
Antigüedad: 18 años, 6 meses
Puntos: 0
Convertir fichero a .zip

Estoy haciendo una pantalla de Upload y Download de archivos.
El Upload será un archivo excel, pero el download debería ser sólo descarga: (es decir no quiero abrirlo, sólo descargarlo).

Hay la posibilidad de poder convertir el fichero excel a .zip al subirlo al Servidor?
Alguien me puede dar una solución?

Muchas gracias
  #2 (permalink)  
Antiguo 26/04/2006, 11:51
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Hola alfisoft,

Seguro que corre por algún lado una libreria para manejar ficheros ZIP. Bajo mi punto de vista, deberías conseguir alguna (siento no poder linkar ningún sitio al respecto) y una vez tienes el fichero Excel que quiere el usuario, antes de descargarselo, le aplicas el método que venga en la libreria para crear el ZIP y agregarle el fichero Excel.
Finalmente ejecutas la descarga del ZIP en vez del Excel.

Una pregunta:
¿Es un requerimiento que se lo descargue en ZIP? ¿No puedes descargar el Excel directo?

Saludos.
__________________
..:: moNTeZIon ::..
  #3 (permalink)  
Antiguo 26/04/2006, 13:46
 
Fecha de Ingreso: enero-2006
Ubicación: mi casa
Mensajes: 255
Antigüedad: 18 años, 3 meses
Puntos: 0
O en vez de usar una libreria que te comprima los ficheros a zip, podrías tu mismo crear el fichero zip a base del fichero de excel..

Tendrías que conocer la estructura de los ficheros ZIP,
que si mal lo recuerdo va asi:

[cabecera]
[fichero]
[fin de fichero]

Podrias colocar las estructuras de datos (la cabecera y la parte final), al subir el fichero excel, leerlo e insertar en primer lugar la cabecera ZIP luego la parte final y ya tendrías tu fichero ZIP...

sencillo...

tenía por aquí un tutorial de como comprimir un fichero mediante ésta forma (usando la estructura de datos..) pero en C y VB...
si lo encuentro
te lo posteo va?
quizá te ayude en algo.

saludos.
  #4 (permalink)  
Antiguo 27/04/2006, 02:08
 
Fecha de Ingreso: octubre-2005
Mensajes: 27
Antigüedad: 18 años, 6 meses
Puntos: 0
Muchas grácias por vuestra ayuda

Dado que el funcionamiento corría mucha prisa (como siempre)
lo solucioné de otra manera:
En vez de hacer un click en el botón y descargar el archivo.
Lo hize mediante comandos de ftp get del archivo.

Por ahora ya lo tengo solucionado.

Muchas gracias por todo
  #5 (permalink)  
Antiguo 13/03/2010, 14:09
 
Fecha de Ingreso: septiembre-2009
Mensajes: 4
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Convertir fichero a .zip

podrias hacer algo como esto:

import java.io.*;
import java.util.zip.*;

public class Zip {
static final int BUFFER = 2048;


public void Convertir(String nombreArchivo){
try {
BufferedInputStream origin = null;
String ext=nombreArchivo.substring(nombreArchivo.lastInde xOf("."));
System.out.println(ext);
String nombrezip= nombreArchivo.replace(ext,"");
FileOutputStream dest = new
FileOutputStream(nombrezip+".zip");
ZipOutputStream out = new ZipOutputStream(new
BufferedOutputStream(dest));
//out.setMethod(ZipOutputStream.DEFLATED);
byte data[] = new byte[BUFFER];
// get a list of files from current directory
File f = new File(nombreArchivo);

System.out.println("Adding: "+f);
FileInputStream fi = new
FileInputStream(f);
origin = new
BufferedInputStream(fi, BUFFER);
ZipEntry entry = new ZipEntry(f.toString());
out.putNextEntry(entry);
int count;
while((count = origin.read(data, 0,
BUFFER)) != -1) {
out.write(data, 0, count);
}
origin.close();

out.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}
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 17:03.