سیامک
8 ماه پیش توسط سیامک مطرح شد
5 پاسخ

عدم آپلود فایل در پوشه public html لاراول

درود.
فایل پروژه رو در یک دایرکتوری بالاتر از دایرکتوری public html با نام laravel آپلود کردم و محتوای فولدر Public رو هم به public html منتقل کردم.

تا اینجای کار همه چی اوکی هست.
ولی وقتی میخام فایلی رو مثلا تصویری رو از داخل پنل مدیریت پروژه آپلود کنم می‌ره داخل دایرکتوری پروژه و فولدر public میسازه و فایل رو آپلود می کنه.

اکثر روش های bind کردن چه داخل index.php و چه در AppProviderService.php انجام دادم ولی بازم هیچ.

لطفا راهنمایی کنید 🙏


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

ضمن تشکر و سپاس از دو عزیز @salar.mohammad2013 و @developer

بعد از کلی سرچ کردن نهایتا ، پاسخ این چالش رو پیدا کردم:

افزودن تکه کد زیر به فایل public_html > index.php

app()->usePublicPath(__DIR__);

برای مطالعه بیشتر اینجا کلیک کنید.


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 8 ماه پیش مطرح شد
1

سلام عزیز
من خیلی وقته از هاست اشتراکی استفاده نمیکنم اما چند مورد رو ذکر میکنم لطفا بررسی کن
یک فایل htaccess هست

RewriteEngine on
RewriteCond %{HTTP_HOST} ^ur-domain.ir$ [NC,OR]
RewriteCond %{HTTP_HOST} ^ur-domain.ir$
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]

مورد دیگه توی config>filesystems بخش disks ها

        'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],

و در نهایت متد ذخیره سازیت رو ببین چیه که استفاده میکنی من توی لایو وایر از storeAs استفاده میکنم


developer
تخصص : برنامه نویس
@developer 8 ماه پیش مطرح شد
1

فایل ها رو توی public ذخیره نکنید،
ترجیحا توی استوریج و یا چه بهتر توی یه فضای بیرونی s3 ذخیره کنید


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

درود.
سپاس از وقتی که گذاشتید.

متاسفانه روش ها رو امتحان کردم ولی کارساز نبود.
از متد storeAs و Storage (به همراه symlink) هم استفاده کردم ولی بازم میگرده داخل دایرکتوری پروژه و اونجا داخل public آپلود می کنه.
در ضمن از bind app های زیر هم استفاده کردم.

$this->app->bind('path.public', function()
        {
            return base_path('public_html');
        });

یا

$app->bind('path.public', function()
{
    return __DIR__;
});

انگار اصن اینارو نمی خونه !!!
ضمنا ساختار htaccess رو نگاه کردم چیزی تحت عنوان public نداشت که بخوام تغییر بدم . متاسفانه


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 8 ماه پیش مطرح شد
0

ضمنا ساختار htaccess رو نگاه کردم چیزی تحت عنوان public نداشت که بخوام تغییر بدم . متاسفانه

به نظر من مشکل شما از همین فایل htaccess هست
شما باید عمل ریدایرکت به همون public رو براش انجام بدی
دیگ نیاز به اون بایند کردنو این داستانا هم نباید باشه


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

ضمن تشکر و سپاس از دو عزیز @salar.mohammad2013 و @developer

بعد از کلی سرچ کردن نهایتا ، پاسخ این چالش رو پیدا کردم:

افزودن تکه کد زیر به فایل public_html > index.php

app()->usePublicPath(__DIR__);

برای مطالعه بیشتر اینجا کلیک کنید.


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

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