前提・実現したいこと
Angularから画像のPOSTをFormdataを使うことで行いました。
結果としては、500エラーでRailsでは以下にに示すログが出力されています。
調べたりしても何が問題なのか分からずじまいです。
発生している問題・エラーメッセージ
Started POST "/api/v1/users/" for 172.20.0.1 at 2021-07-27 19:01:21 +0000 ActionController::BadRequest (Invalid request parameters: invalid %-encoding (��W5U:d��0��paO�n�IN�"�՛�����e�w�\2~�D�����hHפj�t�F�4��c��C�y� #0��
Angularでは以下のようにPOSTしてます。
onImageChange(event) { this.judgimg = false; this.fileReader(event); if (event.target.files.length > 0) { const file = event.target.files[0]; this.userForm.get('avatar').setValue(file); this.userForm.get('avatar').updateValueAndValidity() } } fileReader(data) { const reader = new FileReader(); const [file] = data.target.files; reader.readAsDataURL(file); reader.onload = () => { this.imgFile = reader.result as string; console.log(this.judgimg) }; } onSubmit() { var formData: any = new FormData(); formData.append("nickname", this.userForm.get('nickname').value) formData.append("avatar", this.userForm.get('avatar').value); console.log('etc', this.userForm.value, formData) this._us.postNewUser(formData) .subscribe(res => { console.log(res); alert('Uploaded Successfully.'); } ) }
Rails
def user_params params.require(:user).permit(:nickname, :avatar) end
こちらでParameterが受け取れないです。
困っていること、分からないこと
1 FormdataでPOSTしたパラメータ(画像ファイル)はRailsで受け取れるのか?
2 パラメータの文字列が文字化けしている原因はなんなのか??
以上の事柄が知りたいです。
詰まっているので、何かデバックの方法や考え方などを教えていただければ幸いです。
あなたの回答
tips
プレビュー