Как отобразить изображение в NodeJS? - PullRequest
0 голосов
/ 01 мая 2020

Не могли бы вы помочь мне отобразить загруженное изображение. Для загрузки я использую Multer. а затем мне нужно отобразить его по другому маршруту.

Итак, в папке «uploads» каждый новый файл находится в голове. Поэтому мне нужно отобразить это. Как я могу это сделать?

router.post('/upload', (request, response) => {
upload(request, response, (error) => {
    if(error) {
        request.flash('error_message', 'Only images are allowed')
        response.redirect('/')
    }
    else {
        if(request.file == undefined) {
            request.flash('error_message', 'Image file was not been selected.')
            response.redirect('/')

            console.log(request.file)
        }
        else {
            request.flash('success_message', 'Image was uploaded successfully.')
            response.redirect('/compress')

            console.log(request.file)
        }
    }
})

})

router.get('/compress', (request, response) => {
    response.render('compress', {
        //here i want to display it, but i didn’t succeed

    })
})

1 Ответ

0 голосов
/ 01 мая 2020

после загрузки файла:

  response.redirect(`/compress/${request.file.filename}`);

пример: / compress / my-image.png

вам нужно создать маршрут следующим образом:

 var fs = require('fs');  
 var path = require('path');

router.get('/compress/:filename', (request, response) => {

    let fileName = request.params.filename;

    // setup your path as per your project folder

    let pathToCheck= path.join(__dirname, '../../uploads/' +fileName);
    console.log('pathToCheck==',pathToCheck);

    // __dirname : will give you current directory path

    // checking if file exists or not 
    if (fs.existsSync(pathToCheck)) {
        // file found , display it 
        let imageUrl = `${request.protocol}://${request.headers.host}/uploads/${fileName}`;
        response.render('compress', { imageUrl : imageUrl });
    }else{
         // file not found , render error 404 page 
        response.render('error404');
    }

})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...