Wizard Notes

Python, JavaScript を使った音楽信号分析の技術録、作曲活動に関する雑記

Flask+jQueryでFormDataのファイルと値を一緒にPOST

JavaScriptからFlaskにファイルと何らかの値を一緒にPOSTしたい時に少し悩み、最終的に以下のようなコードで実現できました。

ポイントはFlaskでrequest.filesとrequest.valueを使い分けるところです。

javascript(クライアント側)

...
 var fd = new FormData();
fd.append('file', file_object); //POSTしたいファイルオブジェクト
fd.append('index', index); //POSTしたい値
...
$.ajax({
  ...
  data: fd,
  ...
})

Flask(サーバ側)

...
file = request.files['file']
index = request.values["index"]
...

medium.com