【发布时间】:2015-05-29 12:50:31
【问题描述】:
我有一个运行强大的小功能来接受传入的文件。它就像一个魅力,但我在文档中看不到任何关于限制文件类型的地方。 https://github.com/felixge/node-formidable 似乎几乎所有其他内容都涵盖了这一点。
还有其他人遇到过这个吗?
var form = new formidable.IncomingForm(),
files = [],
fields = [],
returnJson = {};
//setup the incoming
form.uploadDir = GLOBAL.server_settings.user_content;
form.encoding = 'utf-8';
form.maxFieldsSize = 2 * 1024 * 1024;
form.maxFields = 1000;
form.on('field', function(field, value) {
console.log(field, value);
fields.push([field, value]);
})
/* this is where the renaming happens */
.on ('fileBegin', function(name, file){
var fileType = file.type.split('/').pop();
//rename the incoming file
file.path = form.uploadDir + "/" + req.user.id + _ + toolbox.uniqid() + '.' + fileType;
})
.on('file', function(field, file) {
//on file received
console.log(field, file);
files.push([field, file]);
})
.on('progress', function(bytesReceived, bytesExpected) {
//self.emit('progess', bytesReceived, bytesExpected)
var percent = (bytesReceived / bytesExpected * 100) | 0;
process.stdout.write('Uploading: %' + percent + '\r');
})
.on('end', function() {
console.log('-> upload done');
console.log( files );
console.log( fields );
returnJson.file_data = files;
returnJson.fields_data = fields;
res.json( returnJson );
});
form.parse(req);
【问题讨论】:
标签: node.js file-upload formidable