چگونگی ایجاد یک فایل منیجر در لاراول ‎ در این اموزش با استفاده از پکیج laravelFileManager مدیریت فایل را انجام میدهیم. پکیجی که کار را راحت کرده و نحوه استفاده از کدهای آن به علت داشتن داکیومنت و جامعه پشتیبانی قوی ، آسان شده . در ابتدا برای نصب این پکیج در terminal خود دستور زیر را وارد کنید.


composer require unisharp/laravel-filemanager:~1.8

این دستور باعث میشود که شما بتوانید آخرین نسخه پایدار این پکیج را نصب کنید . بعد از اتمام نصب مراحل زیر را ادامه دهید. به پوشه config/app.php و داخل providers کدهای زیر را اضافه کنید‎:



,UniSharp\LaravelFilemanager\LaravelFilemanagerServiceProvider::class
 
, Intervention\Image\ImageServiceProvider::class

و به alias هم کد زیر :


Image' => Intervention\Image\Facades\Image::class,‎'

 

حالا دستور های زیر را داخل ترمینال (cmd) وارد کنید:

‎php artisan vendor:publish --tag=lfm_config

 php artisan vendor:publish --tag=lfm_public

الان نوبت این است که کش لاراول را پاک کنیم. پس دستور زیر را مینویسیم:


php artisan route:clear
php artisan config:clear

نحوه استفاده از فایل منیجر: دقت کنید که مسیر config/lfm.php باید دسترسی خواندن داشته باشد . اگر پوشه شما دسترسی خواندن و نوشتن نداشت میتوانید از طریق وب سرور(host)این دسترسی ها را مجاز یا باز کنید. خوب قراره ما با storage ها کار کنیم . اولین چیزی که باید انجام دهیم ، این است که یک linkeنمادین ایجاد کنیم.کد زیر را داخل ترمینال وارد کنید :


php artisan storage:link‎

خوب نصب با موفقیت انجام شد . تمام تنظیمات شما داخل config/lfm.php قرار دارد ‎‎ برای اینکه بتوانیم از مدیریت فایل استفاده کنیم ، نیاز به پلاگین هایWYSIWYG داریم . مثل CKEDITOR ‎ اگر با ویرایشگر ckeditor کار کرده باشید ، میبینید که یک قسمت برای آپلود فایل دارد‎.چون باید به یک پردازشگر ( مثل مدیریت فایل ) وصل شود‎ وارد فایل blade شوید:

حالا در blade خود در قسمت head یا بعد از body اسکریپت زیر را قرار دهید :

<script src="//cdn.tinymce.com/4/tinymce.min.js"></script>
<script>
var editor_config = {
// path_absolute : "/",
path_absolute:"{{ url('/') }}/",

selector: "textarea.my-editor",
plugins: [
"advlist autolink lists link image charmap print preview hr anchor pagebreak",
"searchreplace wordcount visualblocks visualchars code fullscreen",
"insertdatetime media nonbreaking save table contextmenu directionality",
"emoticons template paste textcolor colorpicker textpattern"
],
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image media",
relative_urls: false,
file_browser_callback : function(field_name, url, type, win) {
var x = window.innerWidth || document.documentElement.clientWidth || document.getElementsByTagName('body')[0].clientWidth;
var y = window.innerHeight|| document.documentElement.clientHeight|| document.getElementsByTagName('body')[0].clientHeight;

var cmsURL = editor_config.path_absolute + 'laravel-filemanager?field_name=' + field_name;
if (type == 'image') {
cmsURL = cmsURL + "&type=Images";
} else {
cmsURL = cmsURL + "&type=Files";
}
tinyMCE.activeEditor.windowManager.open({
file : cmsURL,
title : 'Filemanager',
width : x * 0.8,
height : y * 0.8,
resizable : "yes",
close_previous : "no"
});
} ,

// Add Bootstrap Image Responsive class for inserted images
image_class_list: [
{title: 'None', value: ''},
{title: 'Bootstrap responsive image', value: 'img-responsive'},
]

};

tinymce.init(editor_config);
</script>

حالا میتوانیم توی config/lfm.php تنظیمات مربوط به فایل منیجر را اعمال کنیم مثلا میتوانیم یه دسترسی جدید بسازیم که فقط یک سری از یوزرهای خاص بتوانند ازاین فایل منیجر استفاده کنند یا سایز عکس رو مشخص کنیم و اینکه چه نوع فایلی را میشود آپلود کرد.

// Include to pre-defined routes from package or not. Middlewares
'use_package_routes' => true,

// Middlewares which should be applied to all package routes.
// For laravel 5.1 and before, remove 'web' from the array.
'middlewares' => ['web', 'auth'],
 
// The url to this package. Change it if necessary.
'url_prefix' => 'laravel-filemanager',



 

طراحی سایت-کار با فایل منیجر در لاراول

شرکت طراحی وب سایت اینتن متشکل از تیم حرفه ای ، باتجربه و آکادمیک در عرصه فضای مجازی است که عمده فعالیت هایش حول طراحی سایت های اینترنتی، سئو سایت و بهینه سازی وب سایت و برندسازی اینترنتی می باشد.