我在express3.x上并且使用强大]
app.post "/up",(req,res)-> formidable = require('formidable') form = new formidable.IncomingForm() form.uploadDir = __dirname + "/uploads" form.encoding = 'binary' form.addListener 'file',(name,file) -> #write file console.log('file uploaded') return console.log('$$$$$$$$$$$') form.addListener 'end', -> console.log('end') res.end() return console.log('@@@@@$$$$') form.parse req,(err,fields,files)-> console.log('parse') console.log(err) if(err) return console.log('######') return
且上传表单为
block content :coffeescript $ -> formData = new FormData() xhr = new XMLHttpRequest() onProgress = (e)-> per_complete = (e.loaded/e.total) * 100 if e.lengthComputable onReady = (e)-> alert("Ready") onError = (err)-> alert("Error Loading "+err) $('#upload').click (e)-> formData.append('img',document.getElementById('img').files[0]) xhr.open('post','/up',true) xhr.addEventListener('error',onError,false) xhr.addEventListener('progress',onProgress,false) xhr.send(formData) xhr.addEventListener('readystatechange',onReady,false) h1 hello world form |select Image: input(type='file',name='img', id='img') input(type='button',value='button', id='upload')
没有任何事件被触发...不确定我想念的是什么..
我在express3.x上并且使用强大的app.post“ / up”,(req,res)-> formidable = require('formidable')form = new formidable.IncomingForm()form.uploadDir = __dirname +“ /上传” form.encoding ='...
如果使用app.use(express.bodyParser())
等效于:
express在内部使用强大的功能,因此您的强大功能没有任何事件,如果您想自己使用强大的功能,则必须从bodyParser中删除multipart/form-data
您使用强大而不是内置的bodyParser是否有特定原因?它使用multipart中间件并且基于强大的功能。因此,formidable中的大多数选项也可以应用于bodyParser。例如:
我有一个相同的问题,就是在我的控制器开始处理该文件之前,该文件已完全上传。事件被解雇了,但我还没听。为了解决这个问题,我编写了一个中间件来捕获文件上载并保留它们以供控制器以后使用。
今天发生了类似的问题。浪费了4个多小时的时间。在这里期待一个答案,但在这里找不到它,所以写出来。