2017-02-04 14 views
0

私は最近、Laravelを拾い上げてグリップを取得しています。私は記事を作成して編集できるシンプルなサイトを作っています。私が今達成しようとしているのは、画像アップローダそれに。Slim Image Cropper with Laravel 5.3

これはimage cropperです。これは応答性が高く、携帯電話やデスクトップに最適ですが、それをLaravelプロジェクトに追加する場合はちょっと立ち往生しています。

ダウンロードで.jsファイルといくつかのPHPファイルであること、多くのいくつかのファイルがあり、私は私が私が行っていると私は、アップローダを作るなど、JSファイルも追加されているApp/ディレクトリにSlim.phpファイルを追加する必要があることを読んでビューに表示されます。

ここで私がクリックしてファイルを追加してアップロードをクリックすると、エラーがスローされ、ネットワークを調査して、まだ追加していないarticles/async.phpにデータを送信しようとしています。基本的に単なるスクリプトとしてプロジェクトに入りますか?私が見つけた情報は、私がこれを置く必要がある場所を教えてくれません。

私はちょうどスクリプトを取ってそれを私の店の機能に加えて、どこにスクリプトを探して店にリダイレクトするのかを考えていますが、これは画像を処理してからアップロードされると、私は店舗の情報を送信します。

誰かがララベルに来たら私はちょっとした初心者と言っていたように助けてくれる人なら誰でも助けてくれれば助かります。

答えて

1

私はLaravel 5.4アプリケーションでSlimを使用しました。私の例では、画像を送信するためにajaxを使用していません。標準形式の投稿です。ここで私はそれを動作させるために何をしたかである:

  • アプリケーション/クラスにコピーslim.php(私はクラスと呼ばれる新しいディレクトリにそれを置くことを選んだが、あなたはどこにそれを置くことができる)
  • スリムで.phpあなたがそうのようにそれを名前空間必要があります。namespace App\Classes;
  • あなたのコントローラでは、そのようにスリムクラスで引っ張る:この次の部分についてはuse App\Classes\Slim;

、私は唯一の私のスリムクロッパーを設定すると言って序文ますハンドルイメージ。したがって、私は入力の名前を「アバター」に変更しました。ここで私が使用しているHTMLれる:

<div class="slim" data-label="Drop profile photo here" data-size="200, 200" data-ratio="1:1"> 
    @if ($user->avatar) 
    <img src="{{ $user->avatar }}" /> 
    @endif 
    <input type="file" name="avatar" /> 
</div> 

は、ここに私のコントローラです:

public function avatar($id, Request $request) 
{ 
    $user = User::findOrFail($id); 

    if ($request->avatar) 
    { 
     // Pass Slim's getImages the name of your file input, and since we only care about one image, postfix it with the first array key 
     $image = Slim::getImages('avatar')[0]; 

     // Grab the ouput data (data modified after Slim has done its thing) 
     if (isset($image['output']['data'])) 
     { 
      // Original file name 
      $name = $image['output']['name']; 

      // Base64 of the image 
      $data = $image['output']['data']; 

      // Server path 
      $path = base_path() . '/public/img/avatars/'; 

      // Save the file to the server 
      $file = Slim::saveFile($data, $name, $path); 

      // Get the absolute web path to the image 
      $imagePath = asset('img/avatars/' . $file['name']); 

      $user->avatar = $imagePath; 
      $user->save(); 
     } 
    } 

    return redirect()->back()->with('success', "User's profile picture has been updated!"); 
} 

私はこれが

+1

パーフェクトありがとう役に立てば幸い! – Sparkz

+0

うれしい私は助けることができます。 – Mark