Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

257
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda