• 1400/05/01

Intervention Image :

با سلام

من در دوره mvc روش آپلود عکس با کمک Intervention Image  از شما یاد گرفتم

یکسری متد در داخل آن تعریف می کردیم تا بتونیم از این روش استفاده کنیم

در لاراول هم این باید متئهایی مثل UploadAndFitImage را خودمون تعریف کنیم یا با همین نام

یا نام های دیگری متد وجود دارد و می توان استفاده کرد

        $inputs=$request->all();
        $path='images/posts/'.date('Y/M/d');
        $name=date('y_m_d_H_i_s_').rand(10,100);
        $inputs['image']=Image::make($request->file('image'))->resize(150, 150)->save($path.$name);
        dd($inputs);
         ModelsImage::insert([
            'original_img'=> $image->getPathname(),
            'thumb_img'=> $imgFile->dirname,
        ]);

متاسفانه خطا میده

Intervention\Image\Exception\NotWritableException
Can't write image data to path (images/posts/2021/Jul/2321_07_23_07_07_16_11)
  • 1400/05/01
  • ساعت 12:09

با سلام خدمت شما همراه گرامی

 

 

متن خطارو سرچ‌ بفرمایید


  • 1400/05/01
  • ساعت 13:20

به خطا کار ندارم میخوام بدونم برای استفاده از این قابلیت باید تابع یاا متدی را تعریف کنم مثل mvc یا خودش بطورخودکار در لاراول اضافه میشه


  • 1400/05/01
  • ساعت 13:23

اگر امکانات اضافه نخوایید خیر نیازی نیست

 

 

https://www.tutsplanet.com/laravel-image-intervention-tutorial-with-example/


  • 1400/05/01
  • ساعت 15:32

ممنون از شما


  • 1400/05/01
  • ساعت 16:33

زنده باشید


  • 1400/05/01
  • ساعت 19:37

عذرخواهم

در این آموزش عکس ذخیره میشه ولی مسیرش خیر

بخاطر همین نمی توان نمایش داد 


  • 1400/05/01
  • ساعت 23:24

سلام دوست عزیز ؛

من هم همین مشکل رو داشتم از تابع زیر استفاده کنین .

function saveImage($inputFile, int $resizeHeight = 300, int $resizeWidth = 300)
{
    if (isset($inputFile)) {
        $path = public_path("images/" . date('Y/M'));
        $name = date('Y_m_d_H_i_s_') . $resizeWidth . 'x' . $resizeHeight;
        $name = trim($name, '\/') . '.' . $inputFile->getClientOriginalExtension();
        $path = trim($path, '\/') . "/";
        if (!is_dir($path)) {
            if (!mkdir($path, 0777, true) && !is_dir($path)) {
                die("image resize : failed to create directory");
            }
        }
        is_writable($path);
        \Intervention\Image\Facades\Image::make($inputFile)->resize($resizeWidth, $resizeHeight)->save($path . $name);
        $path = "images/" . date('Y/M') . '/';
        return '/' . $path . $name;
    }
    return '0';
}

فقط شما request->name$  رو به آرگومان اول پاس بدین بقیه کار ها رو خودش انجام میده .

در آخر برابر با ستون جدول مدلتون قرار بدین که مسیرش ذخیره شه .

$model->imagePathColumn = saveImage($request->name);

  • 1400/05/02
  • ساعت 09:11

ممنون از لطف شما

در واقع شما هم از روشی که در mvc آموزش داده شد استفاده کردید و تابع saveImage رو تعریف کردید

مممنون


  • 1400/05/02
  • ساعت 09:19

سلام مجدد ؛

بله دقیقا . چون من چند جا میخواستم استفاده کنم به صورت helper تعریف کردم . ولی شما میتونین همینو به صورت public یا protected در کنترلر تعریف کنین .


  • 1400/05/02
  • ساعت 10:46

بله در نهایت یک متد کلی لازم دارید برای ذخیره که روش mvc مناسب هست برای ادرس عکس

 

دوستمون‌کاملا درست فرمودن


  • 1400/05/02
  • ساعت 10:57

البته در پروژه خودمون کامل داریم و از امکانات دیگه مثل resize هم استفاده خواهیم کرد و روش اصولی تری‌ رو متناسب با پروژه ماژول محور میگیم خدمتتون


  • 1400/05/02
  • ساعت 18:38

خیلی سعی کردم با کمک تابعی که در mvc بود آپلود را انجام بدم ولی نشد و به نوع فایل ارسالی ایراد می گرفت

 

ولی تابع دوست عزیز را بعنوان متد استاتیکی تعریف کردم و بخوبی کار کرد

خداخیرتان دهد شما رو و استاد عزیز را

از هردو سپاسگزارم


  • 1400/05/02
  • ساعت 20:06

بله فایل دوست عزیزمون درست بود برای اجرا ما هم از همین روش استفاده خواهیم کرد 

 

چون اون mvc مستقیما نمیشه وارد این بخش لاراول‌ بشه

 

 

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


  • 1400/05/03
  • ساعت 09:22

ممنون

 

یه سوال مرتبط بپرسم

ما در قسمت jetstream با لینک زدن بین storage و public ارتباط ایجاد می کنیم

عکسهای پروفایل که محرمانه نیست که بخواهیم در storage ذخیره کنیم پس چرا در اونجا ذخیره میشه؟

 

 

اساسا کی باید از storage استفاده بشه یا بهتر نیست همیشه از storage استفاده بشه؟


  • 1400/05/03
  • ساعت 11:14

نمیشه گفت همیشه فقط محرمانه ها در storage باشن البته بهتره این طور باشه ولی اجباری نیست

 

بهتره فایل های پولی که قراره به فروش برسه یا مواردی از این دست در storage باشن


  • 1400/05/03
  • ساعت 17:05

ممنون از راهنمایی شما


logo-enamadlogo-samandehi