あなたのサーバー上の写真ファイルにアクセスするために、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をインストールして、サーバまたはルートファイルにインストールする必要があることを確認してください。 1つのファイルを送信している場合は、「単一の」方法を使用します。別のことをしたい場合は、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