محسن مهری
4 سال پیش توسط محسن مهری مطرح شد
6 پاسخ

ذخیره نکردن عکس در پروژه لاراول بر روی هاست

سلام و خسته نباشید

پروژه ای نوشتم روی لوکال بدون هیچ مشکلی عکس ذخیره میکرد و نمایش میداد
( یک نکته بگم قبل ادامه صحبتم - شروطی گذاشتم برای بررسی اینکه عکس ذخیره میشه یا نه و میپرسم اگه ذخیره شد ادامه بده)
الان روی هاست گذاشتم پروژه ام رو - عکس رو ذخیره میکنه ( منظورم اینه که توی دیتابیس اسمش ثبت میشه)
اما وقتی میرم توی مسیر public/images/ هیچ عکسی ذخیره نشده - مشکل کجاست ؟؟

پوشه images ام سطح دسترسی اش 755 هستش.


ثبت پرسش جدید
Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 4 سال پیش مطرح شد
1

سلام
@mohsen.mehri6101

مسیر دهی شما در داخل کد هاتون به چه صورته؟


محسن مهری
تخصص : برنامه نویس back-end با زبان...
@mohsen.mehri6101 4 سال پیش آپدیت شد
0

@Alimotreb
سلام از تابع url() خود لاراول استفاده میکنم.
کلا یک تابع نوشتم که همه عکسا رو توی مسیر public/images/ ذخیره میکنه و همه ی عکسها رو هم از همون دایرکتوری میخونم

توی هاست هم با فایل public_html دقیقا مثل public لاراول رفتار میکنم

<img class="img-fluid img-rounded"  src="{{url('images/'.auth()->user ()->image)}}">

Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 4 سال پیش مطرح شد
0

سلام
@mohsen.mehri6101

یعنی الان عکساتون توی هاست توی این مسیره :

/home/usernamehost/public_html/public

؟

نحوه آپلود پروژهتون به چه صورت بوده؟
قبل از images هم یه / بزارید


محسن مهری
تخصص : برنامه نویس back-end با زبان...
@mohsen.mehri6101 4 سال پیش مطرح شد
0

@@Alimotreb
@Alimotreb

public function SaveImage($file,$name=null){
        $imagePath = "/images/";
        $end = $file->getClientOriginalExtension();
        //$filename = $file->getClientOriginalName();//get really filename
        $end='.'.$end;
        if(! $name)
        {
            $strRandom=Str::random(3);
            $timeRandom=Carbon::now()->timestamp;
            $name =$strRandom.$timeRandom.$end;
        }
        else
        {
            $name=$name.$end;
        }
        $file->move(public_path($imagePath) , $name);
        return $name;
    }

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

سلام
احتمال زیاد مشکل شما از نحوه مسیر دهی هست:

  • اگر پروژه رو بدون تغییر در پوشه بندی داخل پوشه public_html آپلود کرده باشن باید داخل تنظیمات هاست مقدار document root رو به مسیر public داخل پروژه تغییر بدین.

  • اگر پوشه public رو از سورس پروژه جدا کردین باید مسیر های داخل فایل index.php رو تغییر بدین این قطعه کد رو هم بعد مسیر دهی app.php اضافه کنید:

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

Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 4 سال پیش مطرح شد
1

سلام
@mohsen.mehri6101

با خط به خط جلو رفتن و دیباگ کردن
خودتون دقیقا متوجه میشید که داره کجا ذخیره میشه و از کجا نشون داده میشه

با ادیت مسیر ها و پوشه ها و کاری که دوستمون گفتن ، مسیر درست رو نسبت به آپلود پروژه به دست میارید.


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

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