کمال
1 سال پیش توسط کمال مطرح شد
5 پاسخ

آپلود نشدن در storage

درود بر شما
من فایلم را داخل storage ذخیره میکنم و لینکش را هم ایجاد کردم و روی لوکال هاست کار میکنه
ولی وقتی میرم روی هاست
عکس ها فقط در استوریج ذخیره میشه و در پوشه storage که در public لینک شده نمیاد
چکار کنم ؟


ثبت پرسش جدید
Arshiamohammadei
تخصص : وب و هوش مصنوعی
@Arshiamohammadei 1 سال پیش مطرح شد
0

درود خوبی

ببین وقتی شما فایل‌های پوشه storage ذخیره می‌کنی این فایل‌ها به صورت پیشفرض در دسترس نیستن و برای عموم کاربران قابل دسترسی نیست برای اینکه فایل‌ها در پوشه storage به صورت عمومی قابل دسترسی باشه باید یک لینک عمومی (public link) برای آن‌ها ایجاد بشه

برای این منظور، میتونی از دستور php artisan storage:link توی Laravel استفاده کنی این دستور یک لینک سمبولیک از پوشه public/storage به پوشه storage/app/public ایجاد می‌کند. با این کار، فایل‌های موجود در پوشه storage/app/public از طریق لینک public/storage قابل دسترسی خواهند بود

بعد از اجرای دستور php artisan storage:link، شما می‌توانید به فایل‌های موجود در پوشه storage/app/public از طریق لینک public/storage دسترسی پیدا کنید. به عنوان مثال، اگر فایلی با نام example.jpg در پوشه storage/app/public وجود دارد، شما می‌توانید به آن با استفاده از لینک public/storage/example.jpg دسترسی پیدا کنید.

فقط بعدش وب سرویست رو ریست کن


کمال
تخصص : برنامه نویس ارشد وب
@kamalj 1 سال پیش مطرح شد
0

دوست عزیز این کارو کردم
میدونم
توی لوکال هاست جواب میده
بعد که آپلود میکنم روی سرور دیگه هر چی عکس آپلود میکنم توی storage که توی پابلیک هست قرار نمیگیره


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 1 سال پیش مطرح شد
0

درود خوبی...
بهتره عکس و فایل ها روی پابلیک قرار دهید و اون دردسر storage نداره...


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 1 سال پیش مطرح شد
0

فایل storage که داخل public قرار میگیره باید از نوع Symbolic link باشه. (یه جورایی مثل shortcut ویندوز)
و از خودش موجودیت جداگانه ای نداره. به همین خاطر اصلا معنی نداره که اونجا باشه و اینجا نباشه.

اما اتفاقی که معمولا می افته اینه که موقع آپلود پروژه از لوکال هاست به هاست یا سرور، انتقال symlink به درستی انجام نمیشه و به شکل یک فولدر مستقل آپلود میشه که اشتباه هست.

کاری که باید بکنید اینه که پوشه public/sotrage رو در هاست کلا حذف کنید.
و بعد دوباره به نحوی دستور php artisan storage:link رو در هاست بصورت مستقیم اجرا کنید تا symlink ساخته بشه.


حمیدرضا صفایی
تخصص : توسعه دهنده یونیتی و لاراول
@hamidrezasfy 1 سال پیش آپدیت شد
1

دایرکتوری storage به صورت symlink داخل public ایجاد میشه. و وقتی شما پروژه رو zip یا rar میکنید و به داخل هاست انتقال میدید لینک از بین میره. باید storage رو از public حذف کنید و دوباره با storage:link ایجادش کنید. اگه به ترمینال هاست دسترسی داری خب php artisan storage:link بزن اگه نه که با Artisan::call انجام بده


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

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