@embiid

Как переделать на post запрос загруженный файл?

Уже спрашиваю этот вопрос второй или третий раз)

Делаю приложение, которое должно принимать изображение и сжимать его. Для загрузки использую multer а для сжатия - хотел бы imagemin.

Вот к примеру, я тут загружаю и потом вывожу кратинку эту get-параметром
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(`/${request.file.filename}`);

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

router.get('/:filename', (request, response) => {
    let fileName = request.params.filename

    let pathToCheck = path.join(__dirname, '../public/uploads/' + fileName)
    if (fs.existsSync(pathToCheck)) {
        let imageDestination = `${request.protocol}://${request.headers.host}/uploads/${fileName}`;
        response.render('compress', {
            userImage: imageDestination
        })
    }
    else {
        response.send('Oops.')
    }
})


После чего я хочу ЭТУ картинку которая была загруженна через post "upload" или же которая отображается в get "/:filename" была сжатой:

router.post('/compress/:filename', async (request, response) => {
    const compressedImage = await imagemin([request.params.filename], {
        destination: 'compressed',
        plugins: [
            imageminMozjpeg(),
            imageminJpegtran(),

            imageminPngquant(),
            imageminOptipng(),

            imageminGiflossy(),
            imageminGifsicle(),

            imageminSvgo(),
            imageminWebp()
        ]
    })

    request.flash('success_message', 'Image was compressed successfully. Now it is ready to be downloaded.')
    response.redirect('result')
})


Но получаю в ответ "Cannot POST /compress/".
  • Вопрос задан
  • 30 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы