編輯:===爲了清晰起見,我正在尋找上傳文件到服務器,無論是一張圖片或一點點.txt ===nodejs和上傳文件時出現錯誤,「無法讀取屬性undefined」
我環顧了類似的其他常見問題,但一直無法緩解我的問題。
其目的是創建文件上傳功能。前端看起來像這樣:
<div class="holdingDiv">
<form action="/file-upload" name="upload" class="dropzone dz-clickable" id="dropzoneArea" enctype="multipart/form-data">
<input style="display:none" type="file" name="thumbnail[thumbs]" />
<button id="uploadSubmitter" class="btn btn-primary btn-large" type="submit">Finished</button>
</form>
</div>
我有表單類型和所有爵士樂設置。
處理該POST請求server.js看起來是這樣的:
app.post('/file-upload', imports.upload);
請注意,我也有以下要求:
//needed for forms
app.use(express.bodyParser());
藏漢在必要時調用imports.upload出口的funcionality功能。
的exports.upload功能看起來是這樣的:
exports.upload = function (req, res) {
console.log('FIRST TEST: ' + JSON.stringify(req.files));
console.log('second TEST: ' +req.files.thumbnail.thumbs.name);
//get the file extenstion:
//console.log('size' + req.files.thumbnail.size);
// console.log('test this: ' + req.files.thumbnail.name);
// var fileExtension = JSON.stringify(req.files);
//console.log('Im getting this file type: '+ fileExtension.name);
// console.log('this: '+req.files.upload);
//fs.readFile(req.files.uploadFiles.path, function (err, data) {
// // ...
// var newPath = __dirname + "/uploads/"+uploadFiles.name;
// fs.writeFile(newPath, data, function (err) {
// res.redirect("back");
// });
//});
}
很多東西被註釋掉了,因爲我是在嘗試不同的方法來得到它的工作。我可以用JSON Stringify作爲一個整體對象來調用它,但是我希望它可以作爲一個對象,我可以深入並從中獲取信息,例如,我想通過將其名稱拆分爲'。'來知道文件的類型:
req.files.thumbnail.thumbs.name
但是當我試試這個(甚至JSON Stringyfied)它說它是未定義的。
東西我曾嘗試:
移動整個功能app.js(還有就是作品使用req.body小的登錄功能,我以爲這可能修復它
使用JSON Stringyfy來。獲得在對象的特定部分。(返回undefined)
砸我的頭靠在鍵盤。(返回未定義)
改變表單的enctype到幾個不同的東西,但大多數對這裏的答案聲明形式-data是文件上傳的最佳環境類型。
任何幫助和指針,爲什麼發生這將是非常感謝!
要上傳文件到srever。這是正確的? – Konza
是的,想上傳到服務器 – Jay
我只能在添加method =「post」後才能發佈表單。它是爲你發佈嗎? – user568109