webstorm nodejs mysql_Nodejs+webstorm+mysql环境下,使用formidable多文件上传时发现总是多一个空文件,求教...

问题描述

使用formidable多文件上传,总是多一个空文件,如下图:

552ada66e8bfb9a47e003d7270fac057.png

于是将遍历得到的文件流打印出来,果然循环了三次,代码如下:

相关代码

var form = new formidable.IncomingForm();

form.uploadDir = 'public' + AVATAR_UPLOAD_FOLDER; //设置上传目录

form.keepExtensions = true; //保留后缀

form.maxFieldsSize = 2 * 1024 * 1024; //文件大小

var newPath;

var allFile=[];

form.on('file', function (filed, file) {

console.log('filed:::',filed);

console.log('file:::',file);

allFile.push([filed, file]);//收集传过来的所有文件

// console.log('**********=>allFile:',allFile);

}).parse(req, function (err, fields, files) {

var extName = ''; //后缀名

if(files.file && files.file.length>0){

console.log('大于0');

switch (files.file.type) {

case 'image/pjpeg':

extName = 'jpg';

break;

case 'image/jpeg':

extName = 'jpg';

break;

case 'image/png':

extName = 'png';

break;

case 'image/x-png':

extName = 'png';

break;

}

if (extName.length == 0) {

res.locals.error = '只支持png和jpg格式图片';

res.render('index', {title: TITLE});

return;

}

allFile.forEach(function(file,index){

var fieldName=file[0];

var types = file[1].name.split('.');

var date = new Date();

var ms = Date.parse(date);

fs.renameSync(file[1].path,form.uploadDir+"/"+types[0]+"."+String(types[types.length-1]));//重命名文件,默认的文件名是带有一串编码的,我们要把它还原为它原先的名字。

});

}

})

以下为打印输出的内容:

filed::: file

file::: File {

_events: {},

_eventsCount: 0,

_maxListeners: undefined,

size: 0,

path: 'public\\avatar\\upload_255fc288f22bda9c2e6f3f985c353609',

name: '',

type: 'application/octet-stream',

hash: null,

lastModifiedDate: null,

_writeStream:

WriteStream {

_writableState:

WritableState {

objectMode: false,

highWaterMark: 16384,

finalCalled: true,

needDrain: false,

ending: true,

ended: true,

finished: true,

destroyed: true,

decodeStrings: true,

defaultEncoding: 'utf8',

length: 0,

writing: false,

corked: 0,

sync: true,

bufferProcessing: false,

onwrite: [Function: bound onwrite],

writecb: null,

writelen: 0,

bufferedRequest: null,

lastBufferedRequest: null,

pendingcb: 0,

prefinished: true,

errorEmitted: false,

emitClose: false,

bufferedRequestCount: 0,

corkedRequestsFree: [Object] },

writable: false,

_events: { open: [Function] },

_eventsCount: 1,

_maxListeners: undefined,

path: 'public\\avatar\\upload_255fc288f22bda9c2e6f3f985c353609',

fd: null,

flags: 'w',

mode: 438,

start: undefined,

autoClose: true,

pos: undefined,

bytesWritten: 0,

closed: false } }

filed::: file

file::: File {

_events: {},

_eventsCount: 0,

_maxListeners: undefined,

size: 16144,

path:

'public\\avatar\\upload_5427e66c7f095253103cf435ca326903.png',

name: '1506492549107.png',

type: 'image/png',

hash: null,

lastModifiedDate: 2018-09-06T07:32:45.571Z,

_writeStream:

WriteStream {

_writableState:

WritableState {

objectMode: false,

highWaterMark: 16384,

finalCalled: true,

needDrain: false,

ending: true,

ended: true,

finished: true,

destroyed: true,

decodeStrings: true,

defaultEncoding: 'utf8',

length: 0,

writing: false,

corked: 0,

sync: false,

bufferProcessing: false,

onwrite: [Function: bound onwrite],

writecb: null,

writelen: 0,

bufferedRequest: null,

lastBufferedRequest: null,

pendingcb: 0,

prefinished: true,

errorEmitted: false,

emitClose: false,

bufferedRequestCount: 0,

corkedRequestsFree: [Object] },

writable: false,

_events: {},

_eventsCount: 0,

_maxListeners: undefined,

path:

'public\\avatar\\upload_5427e66c7f095253103cf435ca326903.png',

fd: null,

flags: 'w',

mode: 438,

start: undefined,

autoClose: true,

pos: undefined,

bytesWritten: 16144,

closed: false } }

filed::: file

file::: File {

_events: {},

_eventsCount: 0,

_maxListeners: undefined,

size: 18898,

path:

'public\\avatar\\upload_75052b6e88a8a2a04c3e98090b577dfd.png',

name: '1506492173800.png',

type: 'image/png',

hash: null,

lastModifiedDate: 2018-09-06T07:32:45.575Z,

_writeStream:

WriteStream {

_writableState:

WritableState {

objectMode: false,

highWaterMark: 16384,

finalCalled: true,

needDrain: true,

ending: true,

ended: true,

finished: true,

destroyed: true,

decodeStrings: true,

defaultEncoding: 'utf8',

length: 0,

writing: false,

corked: 0,

sync: false,

bufferProcessing: false,

onwrite: [Function: bound onwrite],

writecb: null,

writelen: 0,

bufferedRequest: null,

lastBufferedRequest: null,

pendingcb: 0,

prefinished: true,

errorEmitted: false,

emitClose: false,

bufferedRequestCount: 0,

corkedRequestsFree: [Object] },

writable: false,

_events: {},

_eventsCount: 0,

_maxListeners: undefined,

path:

'public\\avatar\\upload_75052b6e88a8a2a04c3e98090b577dfd.png',

fd: null,

flags: 'w',

mode: 438,

start: undefined,

autoClose: true,

pos: undefined,

bytesWritten: 18898,

closed: false } }

不知有人遇见过吗?实在不知道咋回事,求教。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值