Laravel 5.4
を使用します。
機能紹介
アップロードしたファイル一覧で表示。
画像の選択とかフォルダで管理できたり。
トリミングができたり。
インストール&設定
コンポーザーでインストールします。
$ composer require unisharp/laravel-filemanagerconfig/app.phpのprovidersとaliasesに下記を追記します。
'providers' => [ // ... Unisharp\Laravelfilemanager\LaravelFilemanagerServiceProvider::class, Intervention\Image\ImageServiceProvider::class,],'aliases' => [ // ... 'Image' => Intervention\Image\Facades\Image::class,],設定フォルダとアセッツを書きコマンドで設置します。
$ php artisan vendor:publish --tag=lfm_config$ php artisan vendor:publish --tag=lfm_public必要に応じて作成された設定ファイルconfig/lfm.phpを編集しましょう。
ルーターの追記をします。
Route::get('/laravel-filemanager', '\Unisharp\Laravelfilemanager\controllers\LfmController@show');Route::post('/laravel-filemanager/upload', '\Unisharp\Laravelfilemanager\controllers\LfmController@upload');日本語にはローカライズされていないのでresources/lang/vendor/laravel-filemanager/ja/lfm.phpに作成します。
超適当ですが作ってみました。
テキストフィールドでの使用
テキストフィールドで選択ボタンをクリックして、選択した画像ファイルのパスを挿入するみたいなやつです。
入力するbladeテンプレートに下記を追加します。
<div class="input-group"><span class="input-group-btn"> <a id="lfm" data-input="thumbnail" data-preview="holder" class="btn btn-primary"> <i class="fa fa-picture-o"></i> 画像選択 </a></span><input id="thumbnail" class="form-control" type="text" name="filepath"></div><img id="holder" style="margin-top:15px;max-height:100px;">
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script><script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script><script src="/vendor/laravel-filemanager/js/lfm.js"></script><script>(function($) { $(function () { var route_prefix = "{{ url(config('lfm.prefix')) }}"; $('#lfm').filemanager('image', {prefix: route_prefix}); });})(jQuery);</script>CKEditorに組み込む
CKEditorの画像プロパティのサーバーブラウザをLaravel File Managerにして、パスをエディタに挿入することができます。
name属性とoldの部分は変更してください。
<textarea id="my-editor" name="body" class="form-control">{!! old('body', $post->body) !!}</textarea><script src="//cdn.ckeditor.com/4.6.2/standard/ckeditor.js"></script><script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script><script>(function($) { $(function () { var options = { filebrowserImageBrowseUrl: '/laravel-filemanager?type=Images', filebrowserImageUploadUrl: '/laravel-filemanager/upload?type=Images&_token=', filebrowserBrowseUrl: '/laravel-filemanager?type=Files', filebrowserUploadUrl: '/laravel-filemanager/upload?type=Files&_token=' }; CKEDITOR.replace('my-editor', options); $('textarea.my-editor').ckeditor(options); });})(jQuery);</script>他にもTinyMCE4とも連携できます。詳しくは下記ドキュメントページを参考にしてください。

