Estoy tomando un archivo que está almacenado en el servidor y lo envío a la interfaz para su descarga. Entonces, cuando el usuario accede a esta URL, el archivo debería descargarse automáticamente. Y también se está descargando. Pero el problema es que el archivo recibido está corrupto. Me gusta Si estoy enviando un pdf desde el servidor, obtengo un pdf corrupto.
Permítanme explicar lo que hace el código a continuación, toma la identificación única (uuid) de los parámetros de URL y luego busca un archivo con ese uuid en particular, si el archivo no está allí, envía un error, pero si está allí, es busca el archivo en el servidor usando el uuid y la ruta mencionada en el documento db, y luego lo envía a la interfaz. Pero cuando descargo ese archivo, obtengo un archivo corrupto.
También esto sucede cuando llego a este punto final del servidor que alojé en heroku, pero el archivo descargado no está dañado cuando uso el host local... lo cual creo que es obvio. Por favor ayuda.
Código:
import express from 'express' ; import File from '../models/file.js' ; import path from 'path' ; const router = express.Router() ; router.get('/:uuid', async (req,res)=> { const file = await File.findOne({uuid: req.params.uuid}); if(!file) return res.render('download', {error: "Link expire ho gya"}); console.log(file) const __dirname = path.resolve(); console.log(__dirname) ; const filePath = `${__dirname}\\${file.path}`; console.log(filePath) ; res.download(filePath) ; }) export default {router}