اذهب إلى المحتوى
  • 0

الوصول إلى الصور المخزنة ضمن المجلد storage في لارافيل

Amir Alsaeed

السؤال

لدي مجموعة من صور الحسابات الشخصية التي تم تحميلها إلى مجلد storage في لارافيل. ولكن الخادم يقوم بتحويل جميع الروابط إلى المجلد public فكيف يمكنني الوصول إلى الصور والملفات المخزنة في المجلد storage بدلاً من ذلك وجعلها تظهر ضمن ال views؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

وفقاً للتوثيق الرسمي في لارافيل، يفضّل وضع الملفات العامة مثل الصور ضمن المجلّد public، ولكن في حال وجود الملفات في مجلّد آخر ولإتاحته على الويب يمكن إنشاء رابط يدعى symbolic من المسار public/storage إلى المسار storage/app/public كالتالي:

ln -s /path/to/laravel/storage/app/public /path/to/laravel/public/storage

الآن يمكنك إضافة رابط URL ضمن ال views باستخدام asset helper بالشكل التالي:

echo asset('storage/file.txt');

ولكن في بعض الحالات لدى بعض الاستضافات المشتركة لا يمكنك إنشاء symbolic link عندها يمكنك إنشاء مسار جديد route في لارافيل والتوجيه إليه عند طلب الملفات. مثال:

Route::get('storage/{filename}', function ($filename)
{
    $path = storage_path('public/' . $filename);

    if (!File::exists($path)) {
        abort(404);
    }

    $file = File::get($path);
    $type = File::mimeType($path);

    $response = Response::make($file, 200);
    $response->header("Content-Type", $type);

    return $response;
});

أما للصور، فيمكن عن طريق لارافيل استخدام مكتبة الصور كالتالي:

Route::get('storage/{filename}', function ($filename)
{
    return Image::make(storage_path('public/' . $filename))->response();
});

الآن يمكن ببساطة وضع الرابط التالي في أي صفحة view :

http://somedomain.com/storage/image.jpg

مع استبدال somedomain باسم النطاق الخاص بك.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

عليك القيام بكتابة هذا الامر :

php artisan storage:link

عندها سيتم عمل رابط storage/app/public سيمكنك من تضمين الصور التي تريدها بالشكل التالي :

http://anydomain.com/storage/image.jpg

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...