我建議嘗試稱爲Multer使Node.js的模塊,以幫助您訪問服務器上的照片文件。
https://github.com/expressjs/multer
首先,在客戶端上,你會想你的文件追加到FormData對象是這樣的:
// obtain the file from your react dropzone and save it to this file variable
const file = dropzone.file // not sure how you do this with react dropzone
const data = new FormData()
data.append('photo', file)
然後你就會發送這個FORMDATA反對你的服務器。在服務器上,您將使用Multer在您用於處理照片的路線上。
確保您NPM安裝multer,並要求其對您的服務器或路線文件。如果你發送一個文件,你將使用Muller'single'方法。如果你想做任何不同的事情,請查看API文檔。
app.post('/photos', multer().single('photo'), controller.processPhoto);
在這個例子中的路線,你發送POST請求/照片,multer正在尋找與「光」一FORMDATA密鑰的文件,並追加,要請求對象。
然後在這個由「controller.processPhoto」的方法,你將有機會獲得的圖像作爲請求對象的屬性,在req.file
。有了這個,你可以很容易地訪問很多好的信息,包括圖像緩衝區req.file.buffer
,這聽起來像你需要的。 (也MIMETYPE,原來的名字等等)
這應該足以讓你開始。
謝謝,這工作完美! 'const data = new FormData()'與multer結合是關鍵。我不知道FormData對象。 –
@MikeJonas你使用'file.preview'作爲傳遞給'data.append'的變量嗎? – Vince