как я могу загрузить изображение (используя NodeJs) в качестве входных данных для моего API классификатора изображений в flask или классификатора изображений, запущенного на XYZ.com, с помощью кнопки загрузки - PullRequest
0 голосов
/ 20 апреля 2020

Мне трудно найти, как я могу загрузить изображение в мой API классификатора изображений и сделать прогноз на нем. в node js я копирую и вставляю много примеров кода, но при этом сохраняется только копия файла в папке загрузки, но нет возможности добавить файл в API. Я использую оба сервера (NodeJs и flask (api)) на моем локальном хосте. Например, мне нужно что-то похожее на AWS Rekognition заставляет нас выбрать изображение и показать ответ.

Это код, который я скопировал, вставил, но не знаю, как добавить API и отправить выбранное изображение на страница

var http = require('http');
var formidable = require('formidable');
var fs = require('fs');

http.createServer(function (req, res) {
    if (req.url == '/fileupload') {
        var form = new formidable.IncomingForm();
        form.parse(req, function (err, fields, files) {
            var oldpath = files.filetoupload.path;
            console.log(oldpath);
            console.log('Fields', fields)
            console.log('Files', files)
            var newpath = 'C:/Users/Pratham Nishad/Desktop/' + 
files.filetoupload.name;
            fs.rename(oldpath, newpath, function (err) {
                if (err) throw err;
                res.write('File uploaded and moved!');
                res.end();
            });
        });
    } else {
        res.writeHead(200, { 'Content-Type': 'text/html' });
        res.write('<form action="fileupload" method="post" 
enctype="multipart/form-data">');
        res.write('<input type="file" name="filetoupload"><br>');
        res.write('<input type="submit">');
        res.write('</form>');
        return res.end();
    }
}).listen(4000);

Что я хочу - скажем, у меня есть классификатор изображений, готовый для классификации изображений на XYZ.com, и я хочу, чтобы пользователь выбрал изображение ( ПРОБЛЕМА ЗДЕСЬ ) из своего хранилища, обработать и опубликовать результат. Все учебники, которые я смотрел, просто выбирают изображение из одного места и вставляют его в место назначения, но нет информации о том, как классификатор изображений, работающий на XYZ.com, получит изображение.

1 Ответ

0 голосов
/ 20 апреля 2020

Проверьте пакет Multer на npm:

https://www.npmjs.com/package/multer

По запросу я продемонстрирую, как я на самом деле использовал этот инструмент.

Код интерфейса:

<!DOCTYPE html>
<html>
<body>

<p>Click on the "Choose File" button to upload a file:</p>

<form action="xyz.com" method="post">
  <input type="file" id="myFile" name="filename">
  <input type="submit">
</form>

</body>
</html>

Код интерфейса:

const multer = require('multer');

//Multer DiskStorage Config
const diskStorage = multer.diskStorage({
    destination: 'path/to/your/desired/folder',
    filename: (req, file, call_back) => {

        //Prepend date to the filename
       //or anything that can uniquely identify the file
       //so it won't get overwritten by the new ones
        call_back(null, Date.now() + '_' + file.originalname);
    }

});

//Create Multer Instance
const upload = multer({ storage: diskStorage });



//Upload picture
router.post('/uploadpic', upload.single('file'), (req, res) => {
res.status(200);
    });

После сохранения файла вы можете использовать это с помощью классификатора изображений.

Вы действительно можете создать свою собственную файловую структуру. Не существует конкретных c ограничений или правил, которым вы должны следовать.

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