質問編集履歴

1

修正

2021/07/28 06:55

投稿

I_am_
I_am_

スコア23

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Angularから画像のPOSTをFormdataを使うことで行いました。
6
6
 
7
- 結果としては、500エラーでRailsではいかに示すログが出力されています。
7
+ 結果としては、500エラーでRailsでは以下示すログが出力されています。
8
8
 
9
9
 
10
10
 
@@ -23,3 +23,119 @@
23
23
 
24
24
 
25
25
  ActionController::BadRequest (Invalid request parameters: invalid %-encoding (��W5U:d��0��p a O�n�IN�"�՛�����e�w�\2~�D�����hHפj�t�F�4��c��C�y� #0��
26
+
27
+ ```
28
+
29
+
30
+
31
+ ### Angularでは以下のようにPOSTしてます。
32
+
33
+ ```
34
+
35
+ onImageChange(event) {
36
+
37
+ this.judgimg = false;
38
+
39
+ this.fileReader(event);
40
+
41
+ if (event.target.files.length > 0) {
42
+
43
+ const file = event.target.files[0];
44
+
45
+ this.userForm.get('avatar').setValue(file);
46
+
47
+ this.userForm.get('avatar').updateValueAndValidity()
48
+
49
+ }
50
+
51
+ }
52
+
53
+
54
+
55
+ fileReader(data) {
56
+
57
+ const reader = new FileReader();
58
+
59
+ const [file] = data.target.files;
60
+
61
+ reader.readAsDataURL(file);
62
+
63
+
64
+
65
+ reader.onload = () => {
66
+
67
+ this.imgFile = reader.result as string;
68
+
69
+ console.log(this.judgimg)
70
+
71
+ };
72
+
73
+ }
74
+
75
+
76
+
77
+ onSubmit() {
78
+
79
+ var formData: any = new FormData();
80
+
81
+ formData.append("nickname", this.userForm.get('nickname').value)
82
+
83
+ formData.append("avatar", this.userForm.get('avatar').value);
84
+
85
+
86
+
87
+ console.log('etc', this.userForm.value, formData)
88
+
89
+ this._us.postNewUser(formData)
90
+
91
+ .subscribe(res => {
92
+
93
+ console.log(res);
94
+
95
+ alert('Uploaded Successfully.');
96
+
97
+ }
98
+
99
+ )
100
+
101
+ }
102
+
103
+ ```
104
+
105
+
106
+
107
+ ### Rails
108
+
109
+
110
+
111
+ ```
112
+
113
+ def user_params
114
+
115
+ params.require(:user).permit(:nickname, :avatar)
116
+
117
+
118
+
119
+ end
120
+
121
+ ```
122
+
123
+ こちらでParameterが受け取れないです。
124
+
125
+
126
+
127
+ ### 困っていること、分からないこと
128
+
129
+
130
+
131
+ 1 FormdataでPOSTしたパラメータ(画像ファイル)はRailsで受け取れるのか?
132
+
133
+
134
+
135
+ 2 パラメータの文字列が文字化けしている原因はなんなのか??
136
+
137
+
138
+
139
+ 以上の事柄が知りたいです。
140
+
141
+ 詰まっているので、何かデバックの方法や考え方などを教えていただければ幸いです。