質問編集履歴

1

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

2020/01/16 14:52

投稿

yuya_i1029
yuya_i1029

スコア7

test CHANGED
File without changes
test CHANGED
@@ -44,19 +44,65 @@
44
44
 
45
45
  ```
46
46
 
47
- ##試した方法(失敗しましたが…)
48
-
49
47
  ここに文字列をくっつけて一緒にpostしたいのですが可能でしょうか。
50
48
 
49
+
50
+
51
+ ##試した方法1
52
+
51
- 例えばでが、以下のようにしてもうまくいきません。
53
+ 一緒にFormDataにappend
52
54
 
53
55
  ```javascript
54
56
 
57
+ formData.append('mp3', this.uploadFile);
58
+
55
- formData.append('name', 'yuya_i1029');
59
+ formData.append('name', 'hogehoge');
56
60
 
57
61
  ```
58
62
 
63
+ この場合Flask側で上手く取り出せません。
64
+
65
+ ```Python
66
+
67
+ # こちらはエラーが出ずに正常にファイルデータを取り出せる
68
+
69
+ mp3_file = request.files['mp3']
70
+
71
+
72
+
73
+ # こちらが原因でエラーが出る
74
+
75
+ name = request.files['name']
76
+
77
+ ```
78
+
79
+ エラーはconsole.logにのみ出て、Python側には出ません。
80
+
81
+ > POST http://127.0.0.1:5000/mp3_upload 400 (BAD REQUEST)
82
+
83
+
84
+
85
+ また、request.filesの中身を以下のようにして覗こうとすると、
86
+
87
+ ```python
88
+
89
+ print(request.files)
90
+
91
+ ```
92
+
93
+ > ImmutableMultiDict([('mp3', <FileStorage: 'npl_speech.mp3' ('audio/mp3')>)])
94
+
95
+
96
+
97
+ と出力されます('npl_speech.mp3'は音声ファイル名です)
98
+
99
+
100
+
101
+
102
+
103
+ ##試した方法2
104
+
59
- また、formDataを用いずに、連想配列の形でFlaskにpostしようとしましたが、Flask側から見るとファイルの中身が空になっていました。
105
+ formDataを用いずに、連想配列の形でFlaskにpostしようとしましたが、Flask側から見るとファイルの中身が空になっていました。
60
106
 
61
107
  ```javascript
62
108
 
@@ -68,7 +114,7 @@
68
114
 
69
115
  'formdata': formData,
70
116
 
71
- 'name': 'yuya_i1029'
117
+ 'name': 'hogehoge'
72
118
 
73
119
  }
74
120