راکت

نمایش عکس ها از فولدر storage

13 پاسخ

با سلام من با استفاده از پلی مورفیک یک به چند، برای یک محصول چند عکس ذخیره کردم .

public function store(ProductRequest $request)
{
$product=product::create($request->all());
$id=$product->id;

     foreach ($request->photos as $photo) {
        $year = Carbon::now()->year;
        $month = Carbon::now()->month;
        $day = Carbon::now()->day;
        $imagePath = "/upload/images/{$year}/{$month}/{$day}";
        $path = $photo->store( $imagePath, 'public');
        $product->photos()->create(['path'=>$path,'imageble_id'=>$id, 'imagable_type' => Product::class]);

     }
    $request->session()->flash('success', 'محصول با موفقیت ثبت شد!');
    return redirect(route('Products.index'));
}

این عکس ها در مسیر
storage/app/public/upload/images/....
ذخیره شده اند.
حال برای نمایش این عکس ها در ویو چه کدی رو باید بزنم؟

ثبت پرسش جدید

پاسخ‌ها

13
محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@akabiri68
سلام.
ابتده دستور زیر رو اجرا می کنید:

php artisan storage:link

بعد می تونید با استفاده از آدرسی که ساختارش مشابه زیر هستش، عکس ها رو نمایش بدید.

http://localhost:8000/storage/upload/images/2020/06/23/image.jpg
حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

خوب مهندس پس تکلیف app/public چی میشه؟ چرا تو مسیر دستیابی به تصویر نوشته نشدن؟
بعد قبلا شما گفتین لاراول مسیر storage رو برای ذخیره تصویر و فایل آپلودی قانونی کرده، پس چرا آقای موسوی و بعضی برنامه نویسان بزرگ مثل مدیر سایت پارس کلیک فایل های آپلودی رو تو مسیر public پروژه ذخیره می کنن؟
@mohsenbostan

شاید پاسخ شما همین‌جا باشد

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@akabiri68
اون دایکتوری یک دایرکتوی خصوصی حساب میشه و نباید کسی بهش دسترسی داشته باشه!
با اون دستوری که گفتم یک نسخه از storage/app/public رو در public/storage/public میسازه( در واقع لینک می کنه)

kabiri
kabiri
@akabiri68

ممنون از توضیحاتتون . بله من لینکی که گفتین رو اجرا کردم و توی publicهم عکس رو ذخیره میکنه. یعنی شما نظرتون اینه که از پلی مورفیک توی آدرس دهی استفاده نکنم؟ اخه من اینجوری توی ویو آدرس داده بودم ولی اجرا نمیکنه
<img src="{{asset('storage/app/public/' . $product->photos->first()->path)}}" alt="HTML ">
@mohsenbostan

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@akabiri68
خب اشتباه آدرس رو دادید!

<img src="{{asset('storage/' . $product->photos->first()->path)}}" alt="HTML ">

به این صورت تغییر بدید.

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@akabiri68
اگر کد بالا هم کار نکرد، به صورت زیر تغییر بدید:

<img src="{{asset($product->photos->first()->path)}}" alt="HTML ">
kabiri
kabiri
@akabiri68

هردو تاشو تست کردم ولی نشون نمیده عکسو. ویو من توی پوشهhome هست. میتونه مشکل از اون باشه؟
من تازه دارم لاراول یاد میگیرم و الان نزدیک دوهفته اس درگیرشم. ممنون میشم کمکم کنید.
@mohsenbostan

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@akabiri68
فرقی نداره ویو کجاست.
کد زیر رو قبل از تگ img قرار بدید و خروجی رو بفرستید:

{{ dd($product->photos->first()->path); }}
kabiri
kabiri
@akabiri68

"upload/images/2020/6/23/qIVlJiJocqpVhXA8rouWQVz2r0GB3fJ1dpP0akUu.jpeg"
@mohsenbostan

kabiri
kabiri
@akabiri68

ولی عکس های من توی این مسیر ذخیره شدن:
storage/public/upload/....
@mohsenbostan

حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

من از شما یه سوالی دارم. شما در همین گفتگو اشاره کردید که من دو هفتست درگیر لاراول شدم و تازه دارم لاراول رو یاد می گیرم. بعد شما رفتین یه دوره خیلی پیشرفته پیاده سازی یک سایت با لاراولو درگیرش شدینو رو اون دارین کا میکنین. باید به شما بگم این جور مشکلاتی که شما دارین بخاطر این میتونه باشه که بیس و پایه گذاری شما در لاراول ضعیفه شما اول باید دوره مقدماتی لاراولو میدیدین و باهاش چند تا پروژه میزدین بعد به این پکیج پیشرفته می رسیدین. این مسئله آپلود مال دوره مقدماتی هست و شما اینو باید اونجا یاد میگرفتین دوست عزیز. در این دوره البته من تهیش نکردم فکر نکنم آقای موسوی بخوان روش آپلود فایل که یه کار پیش پا در لاراول اوفتادستون آموزش بدن. شما باید ابتدا بیس لاراولی تو قوی کنی بعد این پروژه رو کلید بزنی.@akabiri68

kabiri
kabiri
@akabiri68

با سلام. من گفتم دوهفته اس درگیر نمایش عکس هستم .من در پروژه قبلیم هم همین کد رو اجرا کردم و جواب میداد. الان نمیدونم مشکل از کجاست. من یک ساله که دارم لاراول یاد میگیرم و 8ماه کلاس حضوری رفتم و هردوتا دوره آقای موسوی هم خریداری کردم. ولی ایشون آپلود عکس رو با پلی مورفیک نگفتن ولی من با پلی مورفیک پیاده کردم. @hosseinshirinegad98

حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

آقای موسوی فایل هارو در دوره ، در فولدر storage ذخیره می کنن؟@akabiri68

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام