با سلام
من در دوره 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)
با سلام خدمت شما همراه گرامی
متن خطارو سرچ بفرمایید
به خطا کار ندارم میخوام بدونم برای استفاده از این قابلیت باید تابع یاا متدی را تعریف کنم مثل mvc یا خودش بطورخودکار در لاراول اضافه میشه
اگر امکانات اضافه نخوایید خیر نیازی نیست
https://www.tutsplanet.com/laravel-image-intervention-tutorial-with-example/
ممنون از شما
زنده باشید
عذرخواهم
در این آموزش عکس ذخیره میشه ولی مسیرش خیر
بخاطر همین نمی توان نمایش داد
سلام دوست عزیز ؛
من هم همین مشکل رو داشتم از تابع زیر استفاده کنین .
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);
ممنون از لطف شما
در واقع شما هم از روشی که در mvc آموزش داده شد استفاده کردید و تابع saveImage رو تعریف کردید
مممنون
سلام مجدد ؛
بله دقیقا . چون من چند جا میخواستم استفاده کنم به صورت helper تعریف کردم . ولی شما میتونین همینو به صورت public یا protected در کنترلر تعریف کنین .
بله در نهایت یک متد کلی لازم دارید برای ذخیره که روش mvc مناسب هست برای ادرس عکس
دوستمونکاملا درست فرمودن
البته در پروژه خودمون کامل داریم و از امکانات دیگه مثل resize هم استفاده خواهیم کرد و روش اصولی تری رو متناسب با پروژه ماژول محور میگیم خدمتتون
خیلی سعی کردم با کمک تابعی که در mvc بود آپلود را انجام بدم ولی نشد و به نوع فایل ارسالی ایراد می گرفت
ولی تابع دوست عزیز را بعنوان متد استاتیکی تعریف کردم و بخوبی کار کرد
خداخیرتان دهد شما رو و استاد عزیز را
از هردو سپاسگزارم
بله فایل دوست عزیزمون درست بود برای اجرا ما هم از همین روش استفاده خواهیم کرد
چون اون mvc مستقیما نمیشه وارد این بخش لاراول بشه
سلامت باشید بنده کاری نکردم دوستمون زحمت کشیدن
ممنون
یه سوال مرتبط بپرسم
ما در قسمت jetstream با لینک زدن بین storage و public ارتباط ایجاد می کنیم
عکسهای پروفایل که محرمانه نیست که بخواهیم در storage ذخیره کنیم پس چرا در اونجا ذخیره میشه؟
اساسا کی باید از storage استفاده بشه یا بهتر نیست همیشه از storage استفاده بشه؟
نمیشه گفت همیشه فقط محرمانه ها در storage باشن البته بهتره این طور باشه ولی اجباری نیست
بهتره فایل های پولی که قراره به فروش برسه یا مواردی از این دست در storage باشن
ممنون از راهنمایی شما