Я использую грозный для обработки загрузки файлов в NodeJs. Я немного застрял в разборе значений полей.
Как мне передать значение project_id обработчику формы, чтобы я мог записать параметр в свое имя файла?
<input type="text" id="project_id" value="{{projects._id}}" readonly>
ИЗМЕНИТЬ
Чтобы быть более конкретным, вот подробное представление моей обработки загрузки формы:
app.post('/uploads/', function (req, res){
var form = new formidable.IncomingForm();
form.parse(req, function (err, fields, files) {
res.writeHead(200, {'content-type': 'image/jpeg'});
res.write('received upload: \n\n');
var project = fields.project_id;
res.end(util.inspect(project, {fields: fields, files: files}));
});
form.on('end', function(project, fields, files){
console.log(project);
/*Temporary location of our uploaded file */
var temp_path = this.openedFiles[0].path;
/*The file name of the uploaded file */
var file_name = project + '.' + this.openedFiles[0].name;
Я могу зарегистрировать var project
в части form.parse
. Но я не получаю переменную в части form.on('end'...
.
HTML-форма
<form id="uploadForm"
enctype="multipart/form-data"
action="/uploads/"
method="post">
<input type="text" name="project_id" id="project_id" value="{{projects._id}}" readonly>
<input multiple="multiple" type="file" name="upload" />
<button type="submit">Upload</button>
</form>
formidable
напрямую вместоbody-parser
? Предполагая, что вы отправляете эту форму в экспресс-приложение, синтаксический анализатор будет проще. Например.app.use(bodyParser.urlencoded())
даст вамproject_id
вreq.body
. - person Andrew Lavers   schedule 08.05.2015