我有一個Node.js網絡應用程序。在我使用Express的應用程序中。我需要讓用戶上傳圖片。要做到這一點,我已經在線查看了一些示例,但沒有一個能夠滿足我的需求。具體來說,我想獲取上傳的文件,將其保存到本地磁盤,並對其進行一些操作。現在,我有以下幾點:通過Multer在Node.js中上傳文件
const app = this;
const multer = require('multer')
const upload = multer({ dest: 'uploads/' })
app.post('/picture/upload', upload.single('myPicture'), function(req, res) {
console.log('uploaded');
var picture = req.file;
console.log(picture);
res.send({ id: 1, fileName: 'info', originalName: 'name' });
});
當我從我的網頁上傳文件時,我看到在控制檯窗口中:
uploaded
undefined
當我看着小提琴手,我可以看到圖像正在傳遞給服務器。這就像我沒有正確地「訪問」它。如何在Node中的服務器端獲取上傳的文件?
UPDATE: 根據要求通過應答:
req.headers:
{ host: 'localhost:1337',
connection: 'keep-alive',
'content-length': '395665',
accept: 'application/json, text/plain, */*',
origin: 'http://localhost:1337',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
'content-type': 'multipart/form-data; boundary=----WebKitFormBoundary[someRandomCharacters]',
referer: 'http://localhost:1337/picture',
'accept-encoding': 'gzip, deflate, sdch, br',
'accept-language': 'en-US,en;q=0.8',
cookie: ''
}
req.body:
{ myPicture: 'data:image/png;base64,[LONG STRING OF ALPHANUMERIC CHARACTERS]' }
謝謝!
輸入欄的名字是'picture'? – nrgwsth
也許你需要上傳文件爲'form-data',用'picture ='鍵 –
你的內容類型頭部有multipart/form-data,但是主體中的數據是一個數據uri。您正在上傳文件不正確。 – Musa