آفلاین
user-avatar

ارور هنگام آپلود عکس روی سرور در لاراول

10 ماه پیش
توسط حسین آپدیت شد
آفلاین
user-avatar
مهدی حسن پور ( 610 تجربه )
1 سال پیش

سلام بچه ها
موقع آپلود عکس روی لوکال اروری ندارم ولی وقتی میخوام روی سرور عکس آپلود کنم ارور زیر رو میگیرم.
Intervention\Image\Exception\NotReadableException Image source not readable
لاراول 6 با اینترونشن استفاده میکنم.
ممنون میشم اگه کسی بلده کمک کنه

آفلاین
user-avatar
پایان جهان ( 124535 تجربه )
1 سال پیش
تخصص : جوجه برنامه نویس وردپرس و لاراول

درود...
توی تگ form این کد اضافه کنید:

enctype="multipart/form-data"

برای make در کنترلر:

$img = Image::make($request->file('photo')->getRealPath());
آفلاین
user-avatar
مهدی حسن پور ( 610 تجربه )
1 سال پیش

اینا رو امتحان کردم. روی لوکال درست کار میکنه. مشکل یه چیز دیگه هست. روی سرور درست کار نمیکنه.

آفلاین
user-avatar
Mohammad ( 13900 تجربه )
1 سال پیش
تخصص : Back-End developer

سلام.
عکس رو کجا داری اپلود میکنی.
شاید اون ادرس یا پوشه وجود نداره یا
پوشه ای که عکس و توش آپلود میکنی سطح دسترسی شو 777 بذار.

آفلاین
user-avatar
مهدی حسن پور ( 610 تجربه )
1 سال پیش

سلام
عکس رو داخل پوشه storage آپلود میکنم. که درست آپلود میشه. ولی داخل پوشه پابلیک که سیمبل لینک از storage وجود داره چیزی آپلود نمیشه.
واقعیتش این هست که سایت در حالت لوکال درست کار میکنه. و فقط روی هاست اشتراکی مشکلی هست که درست لینک داده نمیشه به پوشه public. فکر میکنم چون توی هاست اسم public_html هست به جای public این مشکل به وجود میاد. و از storage به پوشه public_html لینک داده نمیشه. این وسط باید یه سری تغییرات بدم تا public_html رو لاراول بشناشه.

آفلاین
user-avatar
سیدعلی موسوی ( 114751 تجربه )
1 سال پیش
تخصص : سی شارپ و پی اچ پی

public لاراول رو به public_html تغییر بدید و در فایل AppServiceProvider کد زیر رو ست کنید

$this->app->bind('path.public', function() {
return base_path().'/public_html';
});
آفلاین
user-avatar
Mohammad ( 13900 تجربه )
1 سال پیش
تخصص : Back-End developer

یه راه دیگه اینه که شما پوشه public/storage
رو پاک کنی بعد با کد سیمبل لینک(سرچ کنی نمونش هست) بگی که پوشه public/storage لینک بشه به storage.

آفلاین
user-avatar
مهدی حسن پور ( 610 تجربه )
1 سال پیش

خیلی ممنون از دوستان ولی کاری که خودم انجام دادم و جواب داد این بود که اول یه دونه دیسک ذخیره سازی ساختم که داخل پوشه public فایل ها رو آپلود میکنه به صورت

'public_uploads' => [
            'driver' => 'local',
            'root'   => public_path() . '/storage',
        ],

و ذخیرشون میکنه بعد هم یه قطعه کد به فایل index.php به صورت زیر اضافه کردم و الان داره کار میکنه.

    $app->bind('path.public', function() {
        return __DIR__;
    });
آفلاین
user-avatar
حسین ( 1940 تجربه )
10 ماه پیش
تخصص : برنامه نویس لاراول و اندروید

منم همچین مشکلی داشتم ولی با کمک کد آقای @juza66 مشکل حل شد .
دمت گرم .👍👍👍

آفلاین
user-avatar
حسین ( 1940 تجربه )
10 ماه پیش
تخصص : برنامه نویس لاراول و اندروید

بچه ها یه سوال ؟!
اگه از کد زیر استفاده کنیم ، ولی پروژه روی لوکال باشه دیگه خطا میده و کار نمیکنه ! چیکار باید کرد ؟ باید پوشه public رو به public_html تغییر بدیم ؟؟؟

$this->app->bind('path.public', function() {
return base_path().'/public_html';
});
برای ارسال پاسخ باید وارد سایت شوید