在此循環中,「req.files.upload.length」返回文件計數當0或上傳多個文件時,上傳一個文件時,「req.files.upload.length」返回文件大小。爲什麼?req.files.upload.length返回文件計數爲零或上傳多個文件時,上傳一個文件時,返回文件大小
上傳處理程序:
app.post('/upload', function(req, res){
console.log('file count: ' + req.files.upload.length);
var file;
var i = 0;
for(var x = 0; x < req.files.upload.length; x++){
file = req.files.upload[x];
console.log(file.name + ' (' + (file.size * 0.0009765625).toFixed(0) + ' kB, ' + file.type + ')');
};
console.log(req.files.upload.length + ' files uploaded to server');
res.redirect('/forms');
});
當我上傳一個文件,我得到這個錯誤:
TypeError: Cannot read property 'name' of undefined
at /Users/frode/Dropbox/Nettsider/expressmal/app.js:296:20
at callbacks (/Users/frode/Dropbox/Nettsider/expressmal/node_modules/express/lib/router/index.js:272:11)
at param (/Users/frode/Dropbox/Nettsider/expressmal/node_modules/express/lib/router/index.js:246:11)
at pass (/Users/frode/Dropbox/Nettsider/expressmal/node_modules/express/lib/router/index.js:253:5)
at Router._dispatch (/Users/frode/Dropbox/Nettsider/expressmal/node_modules/express/lib/router/index.js:280:4)
at Object.handle (/Users/frode/Dropbox/Nettsider/expressmal/node_modules/express/lib/router/index.js:45:10)
at Context.next (/Users/frode/Dropbox/Nettsider/expressmal/node_modules/express/node_modules/connect/lib/http.js:204:15)
at Context.<anonymous> (/Users/frode/Dropbox/Nettsider/expressmal/node_modules/passport/lib/passport/context/http/actions.js:64:8)
at SessionStrategy.pass (native)
at /Users/frode/Dropbox/Nettsider/expressmal/node_modules/passport/lib/passport/strategies/session.js:48:12
URIError: URI malformed
at /Users/frode/Dropbox/Nettsider/expressmal/node_modules/express/node_modules/connect/lib/middleware/static.js:119:14
at Object.static [as handle] (/Users/frode/Dropbox/Nettsider/expressmal/node_modules/express/node_modules/connect/lib/middleware/static.js:60:5)
at next (/Users/frode/Dropbox/Nettsider/expressmal/node_modules/express/node_modules/connect/lib/http.js:204:15)
at pass (/Users/frode/Dropbox/Nettsider/expressmal/node_modules/express/lib/router/index.js:219:24)
at Router._dispatch (/Users/frode/Dropbox/Nettsider/expressmal/node_modules/express/lib/router/index.js:280:4)
at Object.handle (/Users/frode/Dropbox/Nettsider/expressmal/node_modules/express/lib/router/index.js:45:10)
at Context.next (/Users/frode/Dropbox/Nettsider/expressmal/node_modules/express/node_modules/connect/lib/http.js:204:15)
at Context.<anonymous> (/Users/frode/Dropbox/Nettsider/expressmal/node_modules/passport/lib/passport/context/http/actions.js:64:8)
at SessionStrategy.pass (native)
at /Users/frode/Dropbox/Nettsider/expressmal/node_modules/passport/lib/passport/strategies/session.js:48:12
我不認爲這個錯誤與你粘貼的代碼有關。這裏是什麼:TypeError:無法在/Users/frode/Dropbox/Nettsider/expressmal/app.js:296:20 處讀取undefined 的屬性'name'? – alessioalex
這是第296行:console.log(file.name +'('+(file.size * 0.0009765625).toFixed(0)+'kB,'+ file.type +')'); – Frode
你可以粘貼你用來上傳文件的窗體以及你在「處理」它們的位置嗎? (在什麼路線..) – alessioalex