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

983
Visualizações
Cómo descargar archivos grandes de un servidor desde el frontend (VueJS) usando fetch o axios. Consigue una descarga simultánea mientras buscas

Mi interfaz (escrita en VueJS) necesita descargar un archivo grande de un servidor (~ 1 GB pero puede ser aún más grande). Sin embargo, mi enfoque actual es usar streamSaver , aunque esto parece funcionar bien cuando descargo archivos mientras pruebo localmente, parece tener problemas cuando lo pruebo en otros dispositivos (teléfono Android mientras apunta el servidor a 0.0.0.0)

Código front-end para la descarga, actualmente estoy canalizando los datos de recuperación a streamSaver, sin embargo, por lo que entiendo, la solicitud de recuperación debe completarse antes de que comience la acción de descarga, que no es realmente la solución que necesito. Quiero poder iniciar la descarga simultáneamente.

 const fileStream = streamSaver.createWriteStream(fileName); const res = await fetch("gets/download-file?" + new URLSearchParams({ relPath: path.join(forPath, fileName) })) const readableStream = res.body if (window.WritableStream && readableStream.pipeTo) { return readableStream.pipeTo(fileStream) .then(() => console.log('done writing')) } window.writer = fileStream.getWriter() const reader = res.body.getReader() const pump = () => reader.read() .then(res => res.done ? window.writer.close() : window.writer.write(res.value).then(pump)) pump()

Mi servidor está escrito en express.js, y también he intentado transmitir los datos desde el lado del servidor.

 router.get("/download-file", checkPath, async (req, res) => { try { const relativePath = req.query.relPath; const fullPath = path.join(UPLOAD_FOLDER, relativePath); console.log(green("Downloading: ", fullPath)) // res.sendFile(fullPath, (err) => { // if (err) console.log(red(err)) // }) res.setHeader('Content-Type', 'application/octet-stream'); fs.createReadStream(fullPath).pipe(res); } catch (err) { console.log(red(err)) } })

He visto Transmitir un archivo de blob grande usando StreamSaver.js y otras respuestas similares, pero todas parecen tener fallas similares de tener que completar la solicitud de recuperación y esperar hasta entonces antes de transmitir una descarga, que no es lo que estoy buscando. .

over 4 years ago · Santiago Trujillo
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