2017-12-17 16 views
1

私はLaravel認証を使って、名前、電子メール、パスワード、dobなどの資格情報を使って、自分のプロフィール画像をアップロードできるウェブサイトを作っています。ここLaravelの画像をアップロードする

protected function create(array $data) 
{ 
    return User::create([ 
     'name' => $data['name'], 
     'email' => $data['email'], 
     'password' => bcrypt($data['password']), 
     'dob' => $data['dob'], 
     'profile_picture' => $data['profile_picture], 
    ]); 
} 

と私のフォームがあります:

php artisan make:authを行った後、AuthController.phpでこの機能があります

<form class="form-horizontal" role="form" method="POST" action="{{ url('/register') }}" enctype="multipart/form-data"> 
    {{ csrf_field() }} 

    <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}"> 
     <label for="email" class="col-md-4 control-label">E-mail Address</label> 
     <input id="email" type="email" class="form-control" name="email" value="{{ old('email') }}"> 

     @if ($errors->has('email')) 
      <span class="help-block"> 
       <strong>{{ $errors->first('email') }}</strong> 
      </span> 
     @endif 
    </div> 

    <div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}"> 
     <label for="password" class="col-md-4 control-label">Password</label> 
     <input id="password" type="password" class="form-control" name="password"> 

     @if ($errors->has('password')) 
      <span class="help-block"> 
       <strong>{{ $errors->first('password') }}</strong> 
      </span> 
     @endif 
    </div> 

    <div class="form-group{{ $errors->has('password_confirmation') ? ' has-error' : '' }}"> 
     <label for="password-confirm" class="col-md-4 control-label">Confirm Password</label> 
     <input id="password-confirm" type="password" class="form-control" name="password_confirmation"> 

     @if ($errors->has('password_confirmation')) 
      <span class="help-block"> 
       <strong>{{ $errors->first('password_confirmation') }}</strong> 
      </span> 
     @endif 
    </div> 

    <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}"> 
     <label for="name" class="col-md-4 control-label">Fullname</label> 
     <input id="name" type="text" class="form-control" name="name" value="{{ old('name') }}"> 

     @if ($errors->has('name')) 
      <span class="help-block"> 
       <strong>{{ $errors->first('name') }}</strong> 
      </span> 
     @endif 
    </div> 

    <div class="form-group{{ $errors->has('dob') ? ' has-error' : '' }}"> 
     <label for="name" class="col-md-4 control-label">Date of Birth</label> 
     <input id="dateOfBirth" type="date" class="form-control" name="dob"> 

     @if ($errors->has('dob')) 
      <span class="help-block"> 
       <strong>{{ $errors->first('dob') }}</strong> 
      </span> 
     @endif 
    </div> 

    <div class="form-group{{ $errors->has('profile_picture') ? ' has-error' : '' }}"> 
     <label for="name" class="col-md-4 control-label">Profile Picture</label> 
     <input id="profilePicture" type="file" class="form-control" name="profile_picture"> 

     @if ($errors->has('profile_picture')) 
      <span class="help-block"> 
       <strong>{{ $errors->first('profile_picture') }}</strong> 
      </span> 
     @endif 
    </div> 

    <div class="form-group"> 
     <button type="submit" class="btn btn-primary"> 
      <i class="fa fa-btn fa-user"></i> Register 
     </button> 
    </div> 
</form> 

私はその拡張子の付いた画像のファイル名を保存したいと思います。しかし、どうすればいいのですか? ファイル名を文字列で取得する方法、画像ファイルをパブリックフォルダに移動してXAMPPデータベースに保存する方法はありますか?あなただけの名前を保存し、profile_imagesフォルダ内のパブリックディレクトリにアップロードしたい場合は

+0

protected function createに、このような何かを行うことができます。現実にはあなたはイメージをDBに保存していません!あなたはあなたのサーバー上のそのイメージへの "文字列"パスだけを保存しています! – lewis4u

+0

@ lewis4uはい!それはまさに私が欲しいものです!文字列はファイル名だけです。 –

答えて

3

は、あなたが何かをクリアするだけで

  $request = request(); 

      $profileImage = $request->file('profile_picture'); 
      $profileImageSaveAsName = time() . Auth::id() . "-profile." . 
             $profileImage->getClientOriginalExtension(); 

      $upload_path = 'profile_images/'; 
      $profile_image_url = $upload_path . $profileImageSaveAsName; 
      $success = $profileImage->move($upload_path, $profileImageSaveAsName); 


    return User::create([ 
     'name' => $data['name'], 
     'email' => $data['email'], 
     'password' => bcrypt($data['password']), 
     'dob' => $data['dob'], 
     'profile_picture' => $profile_image_url, 
    ]); 
+0

request()関数の出所から説明してください。 $ data変数を通して関数を作成するためにデータが渡されているので、$ request = request();を理解できません。コード。 –

+0

ここでリクエストヘルパーを使用しました。 "" request() リクエスト機能は現在のリクエストインスタンスを返します。または入力項目を取得します: $ request = request(); " – PSA

+0

リクエストセクションでこの機能を探していましたが、私はヘルパーセクションの下でそれを見つけることができました –

関連する問題