Fardin Najafi
5 سال پیش توسط Fardin Najafi مطرح شد
3 پاسخ

نحوه نمایش اسم عکس

سلام
دوستان بنده با لاراول یه سری عکس ذخیره کردم داخل پوشه images توی پوشه public زیر اما آدرس url عکس رو به صورت کامل زمانی که deploy میکنم نمایش نمیده و عکسهام تو اپ اندروید نمایش داده نمیشه.ممنون میشم راهنمایی کنید.

  public function store(Request $request)
    {
       $validation=$this->getValidationFactory()->make($request->all(),[
            'title'=>'required|max:255',
             'text_content'=>'required',
            'category'=>'required|max:10',
            'image_2'=>'mimes:jpeg,png',
            'image_3'=>'mimes:jpeg,png',
            'image_4'=>'mimes:jpeg,png',
            'image_5'=>'mimes:jpeg,png',
            'image_6'=>'mimes:jpeg,png',
            'image_7'=>'mimes:jpeg,png',
       ]);
       if ($validation->fails()){
           return response()->json(['Message'=>'please feel necessary field'],400);
       }

       $article=new Article();

       $article->title=$request->title;
       $article->text_content=$request->text_content;
       $article->category=$request->category;
       $article->image_2=$request->image_2;
       $article->image_3=$request->image_3;
       $article->image_4=$request->image_4;
       $article->image_5=$request->image_5;
       $article->image_6=$request->image_6;
       $article->image_7=$request->image_7;

       if ($article->save()){

           if(!$request->image_2==null) {
               $name2 = 'article-' . $article->id . '.' . $request->file('image_2')->getClientOriginalExtension();
               $request->file('image_2')->move(public_path('images'), $name2);
               $article->image_2 = $name2;
           }

           if(!$request->image_3==null) {
               $name3 = 'article-' . $article->id . '.' . $request->file('image_3')->getClientOriginalExtension();
               $request->file('image_3')->move(public_path('images'), $name3);
               $article->image_3 = $name3;
           }

           if(!$request->image_4==null) {
               $name4 = 'article-' . $article->id . '.' . $request->file('image_4')->getClientOriginalExtension();
               $request->file('image_4')->move(public_path('images'), $name4);
               $article->image_4 = $name4;
           }

           if(!$request->image_5==null) {
               $name5 = 'article-' . $article->id . '.' . $request->file('image_5')->getClientOriginalExtension();
               $request->file('image_5')->move(public_path('images'), $name5);
               $article->image_5 = $name5;
           }

           if(!$request->image_6==null) {
               $name6 = 'article-' . $article->id . '.' . $request->file('image_6')->getClientOriginalExtension();
               $request->file('image_6')->move(public_path('images'), $name6);
               $article->image_6 = $name6;
           }

if(!$request->image_7==null){
    $name7 = 'article-' . $article->id . '.' . $request->file('image_7')->getClientOriginalExtension();
    $request->file('image_7')->move(public_path('images'), $name7);
    $article->image_7 = $name7;
}
           $article->save();

           return response()->json(['Message'=>'saved successfully'],200);
       }

    }

حالا توی json به صورت زیر نمایش داده میشه که آدرس کامل نیست(image_2) و عکس نمایش داده نمیشه .

{
id: 28,
title: "گام های برنامه ریزی تولید",
text_content: "برنامه ریزی تولید در 5 گام اصلی پیاده سازی می گردد. این گام ها به شرح زیر می باشد: 1-پیش بینی تقاضای محصولات تقاضای محصولات خود را تخمین بزنید که بدانید در یک بازه خاص زمانی چه میزان باید تولید انجام دهید. .",
category: "planning",
view_count: 0,
image_2: "article-28.jpg",
image_3: null,
image_4: null,
image_5: null,
image_6: null,
image_7: null,
created_at: "2020-01-13 18:04:51",
updated_at: "2020-01-13 18:04:51",
}

@hesammousavi
@ali.bayat
@juza66


ثبت پرسش جدید
مهدی عقیقی
تخصص : برنامه نویس وب
@MehdiAghighi 5 سال پیش مطرح شد
0

سلام خسته نباشید.
به نظرم توی این‌جور مواقع لاگ گرفتن و تست کردن حالت‌های مختلف بتونه خیلی کمکتون کنه.
الان شما مثلا $request->image_3; رو dump‌ کنید مقدار داخلش رو ببینید.
بعد من این if ها رو متوجه نمی‌شم شما چرا اینجوری نوشتین!!!
if(!$request->image_3==null)
این رو تبدیل کنید به این :
if($request->image_3!=null)
ببینید شاید فرقی کرد.
اگر تاثیری نداشت چک کنید ببینید اصن وارد if ی که null بودن عکس شماره ۳ و بقیه رو چک می‌کنه میشه یا نه؟ یعنی اصن شاید null دریافت می‌کنه که در اون صورت مشکل از فرانت هست احتمالا. برای چک کردن هم میتونید داخل if یکی چیزی رو echo کنید که ببینید نوشته میشه یا نه.

اگر دیدید وارد اون if‌ هم میشه به چک کنید که $name3 دقیقا چه مقداری رو میگیره‌؟

اگر هیچ‌کدوم از روش‌های بالا جواب نداد، به نظرم بهترین راه اینه که تست‌های مختلف انجام بدین، مثلا تعداد عکس ها رو حذف کنین، چک کنید ببینید فرق image_2 که ذخیره میشه و بقیشون که ذخیره نمی‌شن چیه و ...


مهدی عقیقی
تخصص : برنامه نویس وب
@MehdiAghighi 5 سال پیش مطرح شد
0

حقیقتش من اصلا کد شما رو درست نمی فهمم.
اول $article->save() رو به عنوان شرط گزاشتین توی if بعد یه بار دیگه مقادیر رو دادین و در آخر $article->save() کردین ؟


Fardin Najafi
تخصص : برنامه نویس اندروید
@fardinla96 5 سال پیش آپدیت شد
0

ببینید من الان مشکلم اینکه نحوه ذخیره کردن براساس آدرس مطلق رو نمیتونم داشته باشم .این نحوه ذخیره هم از آموزش یک سایت یاد گرفتم .
من میخوام کدهای json من همانند کدهای زیر آدرس عکس در Image_2 به صورت آدرس کامل باشد .

{
id: 28,
title: "گام های برنامه ریزی تولید",
text_content: "برنامه ریزی تولید در 5 گام اصلی پیاده سازی می گردد. این گام ها به شرح زیر می باشد: 1-پیش بینی تقاضای محصولات تقاضای محصولات خود را تخمین بزنید که بدانید در یک بازه خاص زمانی چه میزان باید تولید انجام دهید. .",
category: "planning",
view_count: 0,
image_2:"http://fardin-najafi.ir/آدرس پوشه public/images/article-02",
image_3: null,
image_4: null,
image_5: null,
image_6: null,
image_7: null,
created_at: "2020-01-13 18:04:51",
updated_at: "2020-01-13 18:04:51",
}

ممنون میشم کد درست را ارسال کنید. @MehdiAghighi @hesammousavi @elyasbeshkani


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

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