загрузить файл (фотографию), сохранить его в локальной папке в виде строки (в базе данных) и показать его из определенной папки в формате jpg - PullRequest
0 голосов
/ 21 февраля 2019

Я получил этот проект в React, и администратор может добавить отпуск вручную (в модальной начальной загрузке) - и показать его на экране.одно из требований заключается в том, что он может загрузить существующий файл (фотографию), который будет использоваться в качестве фотографии отпуска, который он добавляет.изображение необходимо отправить на сервер и сохранить в файле Uploads (из всех изображений отпусков), а затем сохранить в виде строки (в базе данных) в папку определенной папки (и показать наэкран, конечно.) Я пытаюсь использовать npm express-fileupload / сохранить его как базу 64 для изображения, но оба метода не работают ...

 router.post('/addvacation', async (req, res, next) => { 
            console.log(req.body);
            const imgPath = 'should be uploaded to the Uploads file and make it as a string to the location of the specific folder.'; 
//saveImage(req.body.image,req.body.name);


            let insertQuery = `
         INSERT INTO users.vacations (name, price, start, end, followers ,image, description ) 
         VALUES ('${req.body.name}' , ${req.body.price},'${req.body.start}' , '${req.body.end}', '[]' , '${imgPath}',  '${req.body.description}' )

         `; 
            const itemData = {...req.body,image: imgPath };
            try {
                await pool.query(insertQuery); 
            }
            catch(e) {
                console.error(e.message);
                res.status(401).json("Fail");
                return;
            }

            ws.io.emit('add', itemData);
            res.status(200).json("OK");  
        });

Я также пытался использовать этот код, ноэто также не сработало.

// function saveImage(data,name) {
    //     var fs = require('fs');

    //     var bytes = data.split("%");

    //     var b = new Buffer(bytes.length);
    //     var c = "";
    //     for (var i = 0;i < bytes.length;i++) {
    //         b[i] = bytes[i];
    //         c = c + " " + bytes[i]
    //     }

    //     fs.writeFile(`../public/uploads/${name}.jpg`, c,  "binary",function(err) {
    //         if(err) {
    //             console.log(err);
    //         } else {
    //             console.log("The file was saved!");
    //         }
    //     });

    //     return `localhost:3000/public/uploads/${id}.jpg`;
    // }
...