2017-05-16 21 views
-2

を使用して、データベース上のファイル名を保存Laravel 5.4を使用して画像アップロードシステムを作成するために私を助け、また、データベースのファイル名を保存することができます... enter image description here画像のアップロードLaravel 5.4

してください私は、任意の関連を見つけることができませんこれについての記事と私もYouTubeのチュートリアルを試みたが、どのようにファイル名がデータベースに転送されたか説明していない、この上にmoを助けることを願って ありがとう...

ここまで私のコードは.. 。

$this->validate(request(), [ 
     'article_banner' => 'required | mimes:jpeg,jpg,png | max:2000', 
     'article_title' => 'required|max:255', 
     'article_date' => 'required|date', 
     'article_content' => 'required', 
     ] 
    ); 

    $article_banner = $request->file('article_banner'); 
    $article_title = $request->input('article_title'); 
    $article_date = $request->input('article_date'); 
    $article_content = $request->input('article_content'); 

    return $article_banner; 
} 

もここでここ

public function uploadFiles($_destination_path, $images, $new_file_name) { //code to uplaod multiple fiels to path and return paths array wit file names 
    $file_name = str_replace(' ', '-', $new_file_name); 
    $paths = array('path' => $_destination_path . '/' . basename(Storage::disk($this->diskStorage)->putFileAs($_destination_path, $images, $file_name)), 
     'name' => pathinfo($file_name)); 
    return $paths; 
} 

そしてパスとしての機能を作る

@extends('layouts.app') 

@section('content') 
<div class="container"> 
    <div class="row"> 
     <div class="col-md-8 col-md-offset-2"> 
      <div class="panel panel-default"> 
       <div class="panel-heading">User Management -> Edit User</div> 
       <div class="panel-body"> 
        <form class="form-horizontal" role="form" method="POST" action="{{ route('article_add.post') }}" enctype="multipart/form-data"> 
         {{ csrf_field() }} 

         <div class="form-group{{ $errors->has('article_banner') ? ' has-error' : '' }}"> 
          <label for="article_banner" class="col-md-4 control-label">Article Banner: </label> 
          <div class="col-md-6"> 
           <input id="article_banner" type="file" class="form-control" name="article_banner" required autofocus> 
           <p class="help-block">Example block-level help text here.</p> 
           @if ($errors->has('article_banner')) 
            <span class="help-block"> 
             <strong>{{ $errors->first('article_banner') }}</strong> 
            </span> 
           @endif 
          </div> 
         </div> 
         <div class="form-group{{ $errors->has('article_title') ? ' has-error' : '' }}"> 
          <label for="article_title" class="col-md-4 control-label">Article Title: </label> 

          <div class="col-md-6"> 
           <input id="article_title" type="text" class="form-control" name="article_title" value="{{ old('article_title') }}" required autofocus> 

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

         <div class="form-group{{ $errors->has('article_date') ? ' has-error' : '' }}"> 
          <label for="article_date" class="col-md-4 control-label">Article Date: </label> 

          <div class="col-md-6"> 
           <input id="article_date datepicker" type="text" class="form-control datepicker" name="article_date" value="{{ old('article_date') }}" data-provide="datepicker" required autofocus> 

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

         <div class="form-group{{ $errors->has('article_content') ? ' has-error' : '' }}"> 
          <div style="padding:10px;"> 
           <label for="article_content">Article Date: </label> 
           <br /> 
           <textarea id="content article_content" type="text" class="form-control" name="article_content" autofocus>{{ old('article_content') }}</textarea> 
          </div> 
          @if ($errors->has('article_content')) 
           <span class="help-block"> 
            <strong>{{ $errors->first('article_content') }}</strong> 
           </span> 
          @endif 
         </div> 
         @if(session()->has('message')) 
          <div class="alert alert-success"> 
           {{ session()->get('message') }} 
          </div> 
         @endif 
         @if(session()->has('errors')) 
          <div class="alert alert-danger"> 
           {{ session()->get('errors') }} 
          </div> 
         @endif 
         <div class="form-group"> 
          <div class="col-md-6 col-md-offset-4"> 
           <button type="submit" class="btn btn-primary"> 
            Submit 
           </button> 
           <a href="{{ url('article_management') }}" class="btn btn-primary"> 
            Back 
           </a> 
          </div> 
         </div> 
        </form> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

@endsection 
+0

これまでに何を試しましたか?どのようなエラーメッセージが表示されますか?どの特定の部分に問題がありますか? – devk

+0

私はデータベースに保存するためにアップロードするイメージのファイル名を取得しようとしています...そして、$ article_banner = $ request-> file( 'article_banner')を返します。ファイル名は画像 'article_banner'の検証も表示されません=> '必須| mimes:jpeg、jpg、png | max:2000 'も動作していません。....エラーが発生しましたhtmlspecialchars()は、パラメータ1が文字列、オブジェクトであることを想定しています... – ivor

+0

今どこかに行っています。元の投稿を試したコードで更新してフォーマットすることもできますか?また、メッセージ(htmlsepcialchars()か何かを得る)とそれを入手する場所を含めてください。 – devk

答えて

0

article_add.phpだ検証上の私のエラー私はdocxファイルをアップロードするたびに...ない画像 enter image description here

です必要な引数は次のようになります。

$image = $request->file('image'); 
$fileName = $image->getClientOriginalName(); 
$destinationPath = '/images'; 
$img_path[] = $this->uploadFiles($destinationPath, $image, $fileName); 

あなたはimg_path []配列変数に必要なデータを取得します。

+0

うーん...他のフィールドはどうですか?... – ivor

+0

また、画像ファイルの名前をデータベースに追加できますか?... – ivor

+0

私が言うように、名前をDB配列に渡し、配列を手動で作成する必要があります。 –

0
public function feedbackPost(Request $request, $id) 
    { 
     $fileName1 = ""; 
     $fileName2 = ""; 
     $rules = array(
      'conferencename' =>'required', 
      'yourname' =>'required', 
      'email' =>'required', 
      'objective' =>'required', 
      'results' =>'required', 
      'recommendations' =>'required', 
      'key_customers' =>'required', 
      'actions' =>'required', 
      'business_opportunities' =>'required', 
      'other_opportunities' =>'required', 
      'upload_leads' =>'mimes:csv,xls,xlsx', 
      'upload_attendees' =>'mimes:csv,xls,xlsx', 
      ); 

     $validator = Validator::make($request->all(), $rules); 
     if ($validator->fails()) 
     { 
      return back()->with('danger', 'File format not valid'); 
     } 
     else 
     { 
      if($file=$request->hasFile('upload_attendees')) { 
       $file=$request->file('upload_attendees'); 
       $fileName1=$file->getClientOriginalName(); 
       if (!file_exists('uploads/feedback/attendees/'.$id.'')) { 
       mkdir('uploads/feedback/attendees/'.$id.'', 0777, true); 
       } 
       $destinationPath='uploads/feedback/attendees/'.$id.''; 
       $file->move($destinationPath,$fileName1); 
      } 

      if($file=$request->hasFile('upload_leads')) { 
       $file=$request->file('upload_leads'); 
       $fileName2=$file->getClientOriginalName(); 
       if (!file_exists('uploads/feedback/leads/'.$id.'')) { 
       mkdir('uploads/feedback/leads/'.$id.'', 0777, true); 
       } 
       $destinationPath='uploads/feedback/leads/'.$id.''; 
       $file->move($destinationPath,$fileName2); 
      } 
      $feedback = Feedback::insert([ 
             'user_id' => $request->user_id, 
             'conferenceid' => $request->conferenceid, 
             'conferencename' =>$request->conferencename, 
             'yourname' =>$request->yourname, 
             'email' =>$request->email, 
             'objective' =>$request->objective, 
             'results' =>$request->results, 
             'recommendations' =>$request->recommendations, 
             'key_customers' =>$request->key_customers, 
             'actions' =>$request->actions, 
             'business_opportunities' =>$request->business_opportunities, 
             'other_opportunities' =>$request->other_opportunities, 
             'upload_attendees' =>$fileName1, 
             'upload_leads' =>$fileName2, 
              ]); 
      } 
     return back()->with('success', 'Thanks! Your Feedback has been Submitted!'); 
    } 

これは私のやり方です。あなたはこれを試みるかもしれません。

関連する問題