亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用Express 4.0上傳的文件:req.file未定義

使用Express 4.0上傳的文件:req.file未定義

開心每一天1111 2019-07-06 15:10:44
使用Express 4.0上傳的文件:req.file未定義我試圖獲得一個使用Express 4.0的簡單文件上傳機制,但是我一直undefined為req.files在app.post尸體。以下是相關代碼:var bodyParser = require('body-parser');var methodOverride = require('method-override'); //...app.use(bodyParser({ uploadDir: path.join(__dirname, 'files'), keepExtensions: true })); app.use(methodOverride());  //...app.post('/fileupload', function (req, res) {   console.log(req.files);    res.send('ok'); });.。以及附帶的帕格代碼:form(name="uploader", action="/fileupload", method="post", enctype="multipart/form-data")     input(type="file", name="file", id="file")     input(type="submit", value="Upload")解感謝mscdex下面,我轉向使用busboy而不是bodyParser:var fs = require('fs');var busboy = require('connect-busboy');//...app.use(busboy()); //...app.post('/fileupload', function(req, res) {     var fstream;     req.pipe(req.busboy);     req.busboy.on('file', function (fieldname, file, filename) {         console.log("Uploading: " + filename);          fstream = fs.createWriteStream(__dirname + '/files/' + filename);         file.pipe(fstream);         fstream.on('close', function () {             res.redirect('back');         });     });});
查看完整描述

3 回答

?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

看上去body-parser 支持在Express 3中上載文件,但對Express 4的支持被刪除不再包含連接作為依賴項

在瀏覽了mscdex的答案中的一些模塊之后,我發現express-busboy是一個更好的替代方案,也是最接近替代方案的替代品。我注意到的唯一不同之處是上傳文件的屬性。

console.log(req.files)使用體解析器(Express 3)輸出如下所示的對象:

{ file: 
   { fieldName: 'file',
     originalFilename: '360px-Cute_Monkey_cropped.jpg',
     name: '360px-Cute_Monkey_cropped.jpg'
     path: 'uploads/6323-16v7rc.jpg',
     type: 'image/jpeg',
     headers: 
      { 'content-disposition': 'form-data; name="file"; filename="360px-Cute_Monkey_cropped.jpg"',
        'content-type': 'image/jpeg' },
     ws: 
      WriteStream { /* ... */ },
     size: 48614 } }

相比較console.log(req.files)使用特快專遞(明示4):

{ file: 
   { field: 'file',
     filename: '360px-Cute_Monkey_cropped.jpg',
     file: 'uploads/9749a8b6-f9cc-40a9-86f1-337a46e16e44/file/360px-Cute_Monkey_cropped.jpg',
     mimetype: 'image/jpeg',
     encoding: '7bit',
     truncated: false
     uuid: '9749a8b6-f9cc-40a9-86f1-337a46e16e44' } }


查看完整回答
反對 回復 2019-07-06
  • 3 回答
  • 0 關注
  • 2144 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號