angularとphpを用いてアプリを作成しています。
ユーザーの登録時に画像(ユーザーの顔写真とか)も一緒に登録できる機能を作成しています。
画像をサーバーに保存し、保存した画像名をDBに保存する処理を一緒にやる際はどのようにやるのが最適でしょうか?
今私自身が思いついているのは以下二つです。
- 更新するユーザー情報と、画像情報をFormDataで同時に送って同じphp内で処理をする。
- 画像だけ保存するphpを作成して画像名を返す→画像名をユーザー情報に含めてphp内でDB更新処理のみを行う。
// 1. 画像保存とDB更新を一緒にするとき update(user: User, file: File = null): Observable<User> { let formData = new FormData(); formData.append('user', JSON.stringify(user)); if (file) { formData.append('image', file, file.name); } return this.http.post<User>(`${this.apiUrl}user/update.php`, formData); }
// 2. 画像とDB更新を別のphpで行う let formData = new FormData(); formData.append('image', image, image.name); this.http.post(`${this.apiUrl}upload_image.php`, formData).subscribe( imageName => { this.user.image = imageName; this.http.post<User>(`${this.apiUrl}user/update.php`, { id_user: user.id_user, name: user.name, age: user.age, gender: user.gender, address: user.address, mail: user.mail, image: user.image, body: user.body }); } );
- だと画像保存がないときに使ってるポストデータの受け取りphp://inputが使えないから共通化できなくてもやもやする
- だと2回リクエストしないとだからなんか違う気がする
phpに精通している方は普段どのようにして行っていますか?
ご回答いただければ幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。