Wan*_*ter 6 node.js express formidable
我使用强大的功能来处理NodeJs中的文件上传.我很难解析字段值.
如何获取project_id的值到表单处理程序,所以我可以在我的文件名中写入参数?
<input type="text" id="project_id" value="{{projects._id}}" readonly>
Run Code Online (Sandbox Code Playgroud)
编辑
更具体地说,这是我的表单上传处理的详细视图:
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;
Run Code Online (Sandbox Code Playgroud)
我可以登录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>
Run Code Online (Sandbox Code Playgroud)
Formidable的end
回调不带任何参数,但我不确定你是否需要在使用parse
回调时调用它.我想你要找的是这样的:
var fs = require('fs');
app.post('/uploads', function(req, res, next) {
var form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files) {
if (err) next(err);
// TODO: make sure my_file and project_id exist
fs.rename(files.my_file.path, fields.project_id, function(err) {
if (err) next(err);
res.end();
});
});
});
Run Code Online (Sandbox Code Playgroud)
end()
如果您选择不使用parse
回调,则需要监听事件,如下所示:
new formidable.IncomingForm().parse(req)
.on('file', function(name, file) {
console.log('Got file:', name);
})
.on('field', function(name, field) {
console.log('Got a field:', name);
})
.on('error', function(err) {
next(err);
})
.on('end', function() {
res.end();
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20511 次 |
最近记录: |