I am receving invalid characters when sending request to the server for images

30 Views Asked by At

Here is what I get when make a request on the end point image rendered as text

My code :

export const getFile = async (req, res) => {
    try {
        const { userId } = req.user;
        const user = await UserModel.findById(userId);
        if (!user) {
            return res.status(404).json({ error: 'User not found' });
        }
        const { file } = user;  //file: '647ac7d78a0fc8271234ac69--Char (2).jpg'

        const mimeType = path.extname(file);
        let contentType ;
        switch (mimeType) {
            case '.png': contentType = 'image/png'; break;
            case '.jpg': contentType = 'image/jpg'; break;
            case '.jpeg': contentType = 'image/jpeg'; break;
        }

        const imagePath = `./uploads/${file}`

        fs.readFile(imagePath, (err, data) => {
            if (err) {
                console.error(err);
                return res.status(500).send('Internal Server Error');
            }
            res.set('Content-Type', `image/${contentType}`);
            res.send(data);
        });
    } catch (error) {
        console.error(error);
        res.status(500).send('Internal Server Error');
    }
};

the image does exist in that path. When I make a request I will return like the image linked above.

res.set('Content-Type', ${contentType}); doesn't work any better.

0

There are 0 best solutions below