form = new formidable.IncomingForm() form.encoding = 'utf-8' form.uploadDir = folder form.keepExtensions = true form.parse @request, (err, fields, files) -> console.log '上传文件: ' + v.name for k,v of files
当多次上传大文件时(1.64GB),上传一到两次(传完就删),第二或三次时,Node.js后台会报:
FATAL ERROR: JS Allocation failed - process out of memory
当我改为传多个文件的时候,这个问题奇迹般的被解决了,但是新问题出现:
前台页面中:
'<input type="file" name="upload" multiple="multiple">
用multiple指定可以同时选中多个文件一块上传,但是,当选中“软件1.dmg,软件2.dmg,软件3.dmg“后,formidable中的files对象仅有一个upload对象,而该upload对象仅存有最后的 软件3.dmg 的信息:
{ fields: {}, files: { upload: { domain: null, _events: {}, _maxListeners: 10, size: 1723665548, path: '61e2a16498d2622b43cc79922be2256b', name: '软件3.dmg', type: 'application/octet-stream', hash: null, lastModifiedDate: Sat Jun 08 2013 17:04:07 GMT+0800 (CST), _writeStream: [Object] } } }
而如果想要在上传文件之后,还要保持原文件名,那么"软件1.dmg,软件2.dmg" 则无法改名。