質問するログイン新規登録

質問編集履歴

1

試した方法1の説明不足点について追加

2020/01/16 14:52

投稿

yuya_i1029
yuya_i1029

スコア7

title CHANGED
File without changes
body CHANGED
@@ -21,19 +21,42 @@
21
21
  });
22
22
  },
23
23
  ```
24
- ##試した方法(失敗しましたが…)
25
24
  ここに文字列をくっつけて一緒にpostしたいのですが可能でしょうか。
25
+
26
+ ##試した方法1
26
- 例えばですが、以下のようしてもうまくいきません。
27
+ 一緒FormDataにappendする
27
28
  ```javascript
29
+ formData.append('mp3', this.uploadFile);
28
- formData.append('name', 'yuya_i1029');
30
+ formData.append('name', 'hogehoge');
29
31
  ```
32
+ この場合Flask側で上手く取り出せません。
33
+ ```Python
34
+ # こちらはエラーが出ずに正常にファイルデータを取り出せる
35
+ mp3_file = request.files['mp3']
36
+
37
+ # こちらが原因でエラーが出る
38
+ name = request.files['name']
39
+ ```
40
+ エラーはconsole.logにのみ出て、Python側には出ません。
41
+ > POST http://127.0.0.1:5000/mp3_upload 400 (BAD REQUEST)
42
+
43
+ また、request.filesの中身を以下のようにして覗こうとすると、
44
+ ```python
45
+ print(request.files)
46
+ ```
47
+ > ImmutableMultiDict([('mp3', <FileStorage: 'npl_speech.mp3' ('audio/mp3')>)])
48
+
49
+ と出力されます('npl_speech.mp3'は音声ファイル名です)
50
+
51
+
52
+ ##試した方法2
30
- また、formDataを用いずに、連想配列の形でFlaskにpostしようとしましたが、Flask側から見るとファイルの中身が空になっていました。
53
+ formDataを用いずに、連想配列の形でFlaskにpostしようとしましたが、Flask側から見るとファイルの中身が空になっていました。
31
54
  ```javascript
32
55
  let formData = new FormData();
33
56
  formData.append("mp3", this.uploadFile);
34
57
  let data = {
35
58
  'formdata': formData,
36
- 'name': 'yuya_i1029'
59
+ 'name': 'hogehoge'
37
60
  }
38
61
  ```
39
62
  よろしくお願いします。