2017-06-21 5 views
2

私はをAndroidアプリのバックエンドに使用しています。Laravel
私はユーザーXのアバターを更新しようとしています(ユーザーの作成時にdefault.jpgに設定されています)。しかし$request->File('avatar')はヌルです($request->hasFile('avatar')falseです)。マルチパート/フォームデータリクエスト - Laravel/PHP

これは私がポストマン(私はパスポートを使用している方法で)で送信されたものです:

:これは私の更新方法、ファイルを管理する部分の一部である

// Headers 
Accept: application/json 
Authorization: Bearer {{token}} 
Content-Type: multipart/form-data 

// Body of the request 
'avatar' -> the image (in postman) 

public function update(Request $request) 
{ 
    // some code 
    if($request->hasFile('avatar')) { 
     $avatar = $request->file('avatar'); 
     $filename = time() . '.' . $avatar->getClientOriginalExtension(); 
     Image::make($avatar)->resize(300,300)->save(public_path('/uploads/avatars/' . $filename)); 
     $user->avatar = $filename; 
    } 

    // code 
    $user->save(); 

    return something; 

私は何が間違っているのか分かりません。前もって感謝します。

+0

'$ request-> all()'で 'var_dump'を試すことができますか?ファイルが正しく送信されなかったのでしょうか? – shalvah

+0

@shalvahそれは空に戻ります。今、私はPOSTリクエストでこれをやろうとしていて、うまくいきます。 PUTメソッドが問題のようです。 – HCK

+1

ああ。あなたはそれがPUTであるとは言いませんでした。私は、ファイルがPUTでアップロードされることを意図しているとは確信していません。たとえそうであっても、Laravelによって自動的にリクエストボディに解析されることはありません。 – shalvah

答えて

2

調査の結果、POSTリクエストを追加すると、_method = PUTがparam(http://www.someurl.dev?_method=PUT)になりました。私はとにかくon purpose

をwrong-ないよ-ifファイルと

PUTリクエストが適切に処理されていない、私が探していたソリューション..しかし、少なくとも仕事ではありません。

+1

Oh myこれは私が抱えていた問題であり、私はそれを実現さえしなかった。私は 'PUT'を使用していて、ほぼ24時間アップロードしようとしていました!最後に私は 'POST'に変更しました。この質問と解決に感謝します!私は実際に数日前にupvotedしかし、このコメントを置くことを忘れてしまった。 – Noitidart