راکت
حل شده

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

8 پاسخ

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

ثبت پرسش جدید

پاسخ‌ها

8
مهدی شاه عباسیان
مهدی شاه عباسیان
@shahabbasian

تخصص: برنامه نویس

بهترین پاسخ

در فایل 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';

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

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

سلام.

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

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

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

اشکان کاظمی
اشکان کاظمی
@ashkan.kazemi

تخصص: برنامه نویس سمت سرور

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

php artisan storage:link

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

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

علی
علی
@aliiiiiii

الان متوجه شدم که یه پوشه به اسم 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
cs.mohammadi
@cs.baymohammadi

تخصص: Laravel , PHP

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

علی
علی
@aliiiiiii

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

علی
علی
@aliiiiiii

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

مهدی شاه عباسیان
مهدی شاه عباسیان
@shahabbasian

تخصص: برنامه نویس

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

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

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

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