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

160
Visualizações
Intentando servir un archivo e iniciar automáticamente una descarga con Express

Parece que muchas personas se han encontrado con un tipo de problema similar, pero buscar en Google no me ha ayudado hasta ahora. Estoy tratando de entregar el archivo al usuario y solicitar automáticamente la descarga en el lado del cliente, pero todo lo que obtengo es "La imagen no se puede mostrar porque contiene errores.

Aquí está mi código del lado del cliente:

 function downloadFile(passcode){ console.log(passcode); const payload = {"password" : passcode.toLowerCase()} axios.post(downloadUrl, payload, { headers : {'Content-Type' : 'application/json'} }) .then((res) => { console.log(res.data) window.open(downloadUrl + '/' + res.data) }) }

Entonces, el usuario ingresa un código de acceso, hace clic en el botón de descarga y debe obtener el archivo apropiado. Se abre una nueva pestaña, pero el archivo no comienza a descargarse. Aquí está mi lado del servidor:

 const getFilePath = async (req, res) => { const passcode = req.body.password try { fs.readdir(path.join(homeDir + '/uploads/' + passcode), 'utf-8',(err, files) => { files.forEach((file) => { const filename = passcode + '/' + file try { res.send(filename) res.end() } catch (error) { console.log(error); } }) }) } catch (error) { console.log(error); } } const fileDownload = async (req, res) => { const {dir: directory, file: fileName} = req.params const filePath = path.join(homeDir + '/uploads/' + directory + '/' + fileName) fs.access(filePath, fs.constants.F_OK, err => { //check that we can access the file console.log(`${filePath} ${err ? "does not exist" : "exists"}`); }); res.download(filePath) res.end() }

Incluso verifico el archivo con fs.access y devuelve verdadero (imprime {filepath} existe), pero el archivo no se sirve en absoluto.

¡Cualquier tipo de ayuda es muy apreciada!

EDITAR: Decidí trabajar un poco en mi interfaz para refrescarme, volví e inmediatamente noté res.end () justo debajo del archivo de envío, que finaliza la transmisión. ¡Lo eliminé y funciona a las mil maravillas!

about 4 years ago · Juan Pablo Isaza
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