Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

249
Vistas
Uso de Google Drive API v3 para convertir archivos .docx o .doc a archivos de Google Docs

Necesito cargar un archivo .doc o .docx en Google Drive usando Google Drive API v3 y luego convertirlo también usando Google Drive API v3 para que el contenido del archivo sea legible y editable en mi propia aplicación web (alojada en node. js). Intenté hacer esto usando drive.files.copy, sin embargo, seguí recibiendo el error: La API devolvió un error: Error: No se admite la conversión del contenido cargado al tipo de salida solicitado. ¿Alguien puede ayudarme a averiguar cómo hacer esto? Cualquier ayuda será apreciada. ¡Gracias!

Aquí está el código que usé para convertir, sin embargo, no funciona:

 drive.files.list({ q: "mimeType = 'application/msword'" pageSize: 100, fields: 'nextPageToken, files(id, name)', }, (err, res) => { if (err) return console.log('The API returned an error: ' + err); const files = res.data.files; if (files.length) { console.log('Files:'); files.map((file) => { let result = (file.name).substring(0, (file.name).indexOf('.')); console.log(file); console.log(`${file.name} (${file.id})`); drive.files.copy( { fileId: file.id, requestBody: { name: result, mimeType: 'application/vnd.google-apps.document' } }, (err, res) => { if (err) return console.log("The API returned an error: " + err); console.log(res.data); } ); }); }else { console.log('No files found.'); } });

Aquí está el código que usé para cargar el archivo:

 const driveResponse = drive.files.create({ requestBody: { name: filename, mimeType: mimetype }, media: { mimeType: mimetype, body: Buffer.from(data).toString() } }); driveResponse.then(data => { if(data.status == 200) res.redirect('/notes'); else console.log("file not uploaded."); }).catch(err => { throw new Error(err) })
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Cuando vi su secuencia de comandos para cargar el archivo de application/msword , noté un punto de modificación. Entonces, ¿qué tal la siguiente modificación? En este caso, se requiere convertir al tipo de flujo.

Además, confirmé que cuando probé buffer.toString() como el cuerpo de media , el archivo cargado no era válido.

Guión modificado:

 const { Readable } = require("stream"); const stream = new Readable(); stream.push(Buffer.from(data)); stream.push(null); const driveResponse = drive.files.create({ requestBody: { name: filename, }, media: { body: stream } }); driveResponse.then(data => { if(data.status == 200) res.redirect('/notes'); else console.log("file not uploaded."); }).catch(err => { throw new Error(err) })

Nota:

  • Este script modificado supone que su valor de Buffer.from(data) es el valor válido como application/msword . Entonces, si el valor de Buffer.from(data) no es válido como application/msword , verifique los datos nuevamente.
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda