علی
3 سال پیش توسط علی مطرح شد
8 پاسخ

مشکل آپلود تصویر در هاست

پروژه من روی لوکال برای آپلود و ذخیره تصاویر هیچ مشکلی نداره
اما حالا که روی هاست اشتراکی پروژه رو راه اندازی کردم، تصویری داخل هاست من ذخیره نمیشه. درحالیکه url تصویر من بدرستی داخل دیتابیس ذخیره میشه اما خود عکس در جایی از هاست ذخیره نمیشه. بنظرتون مشکل از کجاست؟


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

در فایل index.php پروژه که الان داخل public_html هست این کد رو

// set the public path to this directory
$app->bind('path.public', function() {
    return __DIR__;
});

بعد از این خط قرار بدید

$app = require_once __DIR__.'/../bootstrap/app.php';

تا متوجه بشه که پوشه پابلیک شما کدومه


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

سلام.

احتمال داره علتش موضوع symbolic link پوشه storage باشه. یا اصلا ایجاد نشده یا به مسیر درستی اشاره نمی‌کنه.
علت دومش هم میتونه بحث Permission ها باشه.
و آخریش هم تنظیمات مربوطه در فایل config/filesystem.php و env.

چک کردن فایل log در مسیر storage/logs هم کمک کننده باشه.

موفق و پیروز باشید.


اشکان کاظمی
تخصص : برنامه نویس سمت سرور
@ashkan.kazemi 3 سال پیش آپدیت شد
1

سلام وقتی توی محیط لوکال دستور

php artisan storage:link

رو میزنی بعد میبری تو هاست باید دوباره توی ترمینال هاستت این دستور رو بزنی مگر نه کار نمیکنه


علی
@aliiiiiii 3 سال پیش مطرح شد
0

الان متوجه شدم که یه پوشه به اسم public ایجاد شده که مکانش قبل از public_html هست. و عکس های پروژم داره اونجا ذخیره میشه.
این هم کد آپلود عکس من داخل کنترلر هستش.

if (isset($validate_data['resumefile'])) {
            $file = $validate_data['resumefile'];
            $year = Carbon::now()->year;
            $resumefilePath = "uploads/resume/{$year}";
            $filename = time().'-'.$file->getClientOriginalName();
            $resumefileUrl = $file->move(public_path($resumefilePath),$filename);
        }
        else {
            $resumefileUrl = null;
        }

من میخوام این فایل های رزومه داخل فولدر uploads که در public_html هستش ذخیره بشن.


cs.mohammadi
تخصص : Laravel , PHP
@cs.baymohammadi 3 سال پیش مطرح شد
0

سلام
دوست عزیز شما پروژه رو در داخل پوشه public_html ران کردید یا در پوشه روت هاست یک پوشه ساخته و پروژه اونجا ران کردید؟


علی
@aliiiiiii 3 سال پیش مطرح شد
0

سلام
من کل پروژم رو قبل از public_html قرار دادم و فقط محتوای فایل public پروژه رو داخل public_html ریختم.
@cs.baymohammadi


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

در فایل index.php پروژه که الان داخل public_html هست این کد رو

// set the public path to this directory
$app->bind('path.public', function() {
    return __DIR__;
});

بعد از این خط قرار بدید

$app = require_once __DIR__.'/../bootstrap/app.php';

تا متوجه بشه که پوشه پابلیک شما کدومه


علی
@aliiiiiii 3 سال پیش مطرح شد
0

@mehdi.shahabbasian
این کد رو اضافه کردم و مشکلم حل شد
فقط یک سوال
اینکه همیشه بعد از آپلود پروژه لاراول باید اینکارو انجام بدم؟
یا اینکه من جایی از کدهام رو غیر استاندارد نوشتم؟


مهدی شاه عباسیان
تخصص : برنامه نویس
@shahabbasian 3 سال پیش مطرح شد
-1

شما وقتی ادرس پوشه public رو عوض میکنی طبیعیه که باید به لاراول بفهمونی پوشه public کدومه

من خودم تو تمام پروژه هام همون اول به index اینو اضافه میکنم تا هر جایی این index بود همون بشه پوشه public پروژم


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

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