Не можете найти все данные моей формы POSTed? - PullRequest
0 голосов
/ 02 апреля 2019

Я загружаю файл со своей веб-страницы на мой сервер nodejs, который уже работает. Файл находится внутри формы вместе с некоторыми другими входными значениями, которые я не могу найти, как читать.

HTML

<form class="modal-content" method="POST" action="http://localhost:3000/testupload"  enctype="multipart/form-data" >
    <span class="close">&times;</span>
    <div class="modal-body">
        <input type="file" value="Upload file" name="file" id="input-upload">
        <input type="checkbox" value="Automatic Transcription" name="TESTCHECK">
        <div>
            <input type="checkbox" value="Automatic subtitling">
            <select name="testSelect">
                <option value="en-us">US English</option>
            </select>
        </div>
    </div>
    <div class="modal-footer">
        <button >Upload Media</button>
    </div>
</form>

nodejs

app.post("/testupload", (request, response, next) =>{
    let form = new formidable.IncomingForm();
    form.parse(request, function(err, fields, files){
        //console.log(fields);
        console.log(files.file.name); //Correctly gets the filename
        //further file upload code

    });
    console.log(request);
    response.end();
});

Когда я отправляю форму, я могу получить обратно файл ввода, но не могу найти другие входные данные и значения в любом месте запроса.

1 Ответ

1 голос
/ 02 апреля 2019

Согласно документу вы можете использовать события:

form.on('field', function(name, value) {
});

или

вы также можете ссылаться непосредственно через поля (как в примере на https://www.npmjs.com/package/formidable)

form.parse(req, function(err, fields, files) {
      res.writeHead(200, {'content-type': 'text/plain'});
      res.write('received upload:\n\n');
      res.end(util.inspect({fields: fields, files: files}));
    });

Из того, что я понимаю, вам нужно правильно назвать поля формы (сначала попробуйте на простом примере одно поле ввода текста).

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