¿Cómo convertir un archivo a un archivo zip y descargarlo usando Node.js?

Los archivos Zip son una forma común de almacenar archivos y carpetas comprimidos. En este artículo, demostraré cómo convertir el archivo a formato zip usando el módulo adm-zip (PAQUETE NPM).

Usos de ADM-ZIP

  • comprimir el archivo original y cambiarlos a formato zip.
  • actualizar/eliminar los archivos existentes (formato .zip).

Instalación de ADM-ZIP:

Paso 1: Instale el módulo usando el siguiente comando en la terminal. 
 

npm install adm-zip

Paso 2: Verifique la versión del módulo instalado usando el siguiente comando. 
 

npm version adm-zip

¡Vamos a cambiar esta carpeta upload_data a un archivo zip usando el módulo adm-zip!

cargar_datos CARPETA

Código para la conversión y descarga del archivo zip:

Javascript

// express is a node framework that is helps in creating
// 2 or more web-pages application
const express = require('express')
  
// filesystem is a node module that allows us to work with
// the files that are stored on our pc
const file_system = require('fs')
  
// it is an npm package.this is to be required in our JS 
// file for the conversion of data to a zip file!
const admz = require('adm-zip')
  
// stores the express module into the app variable!
const app = express()
  
// this is the name of specific folder which is to be 
// changed into zip file1
var to_zip = file_system.readdirSync(__dirname+'/'+'upload_data')
  
// this is used to request the specific file and then print 
// the data in it!
app.get('/',function(req,res){
    res.sendFile(__dirname+'/'+'index.html')
  
  
    // zp is created as an object of class admz() which 
    // contains functionalities
    var zp = new admz();
  
  
    // this is the main part of our work!
    // here for loop check counts and passes each and every 
    // file of our folder "upload_data"
    // and convert each of them to a zip!
    for(var k=0 ; k<to_zip.length ; k++){
        zp.addLocalFile(__dirname+'/'+'upload_data'+'/'+to_zip[k])
    }
  
  
    // here we assigned the name to our downloaded file!
    const file_after_download = 'downloaded_file.zip';
  
    // toBuffer() is used to read the data and save it
    // for downloading process!
    const data = zp.toBuffer();
      
  
    // this is the code for downloading!
    // here we have to specify 3 things:
        // 1. type of content that we are downloading
        // 2. name of file to be downloaded
        // 3. length or size of the downloaded file!
  
    res.set('Content-Type','application/octet-stream');
    res.set('Content-Disposition',`attachment; filename=${file_after_download}`);
    res.set('Content-Length',data.length);
    res.send(data);
  
})
  
// this is used to listen a specific port!
app.listen(7777,function(){
    console.log('port is active at 7777');
})

Pasos para ejecutar el programa:

  1. Nuestro proyecto se parece a:

proyecto final

Abra la terminal en el local deseado y asegúrese de haber descargado el paquete adm-zip usando el siguiente comando.

  1.  
npm install adm-zip

Ejecute el archivo app.js usando el siguiente comando.

  1.  
node app.js
  1.  

la aplicación se está ejecutando

¡ Abra el navegador y abra localhost: 7777 y luego la carpeta upload_data se convierte en un archivo zip y se descarga!

  1.  

cambiado a archivo zip

Salida: representa todo el procedimiento para convertir un archivo a un archivo zip con la ayuda del siguiente gif, de esta manera puede cambiar su carpeta a un archivo zip y luego descargarlo.

archivo a archivo zip

Publicación traducida automáticamente

Artículo escrito por rahulmahajann y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *