Загрузка нескольких изображений в твик Laravel для добавления дополнительного поля - PullRequest
0 голосов
/ 31 мая 2019

Мне нужно загрузить несколько изображений.Этот код ниже работает хорошо.Это использует плагин Intervention Image.Я пытаюсь настроить этот код, чтобы добавить другое поле, которое является значением ForeignKey для родителя этой модели изображения.$ request имеет значение, полученное из формы.Как сохранить его вместе с изображениями?
Значение:

$request('vehicle_id')

Как настроить приведенный ниже метод, чтобы сохранить, а также этот vehicle_id?

public function uploadImage(Request $request) 
        {   
            $request->validate([
                'image' => 'required',
                'image.*' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048'
            ]);


    //check if image exist
    if ($request->hasFile('image')) {
        $images = $request->file('image');

        // create new directory for uploading image if doesn't exist
        if( ! File::exists('images/'.auth()->user()->id)) {
            $org_img = File::makeDirectory('images/'.auth()->user()->id, 0777, true);
        }

        // loop through each image to save and upload
        foreach($images as $key => $image) {
            //create new instance of Photo class
            $newPhoto = new $this->photo;
            //get file name of image  and concatenate with 4 random integer for unique
            $filename = rand(1111,9999).time().'.'.$image->getClientOriginalExtension();
            //path of image for upload
            $org_path = 'images/'.auth()->user()->id . $filename;

            $newPhoto->image     = 'images/'.auth()->user()->id.$filename;

            //don't upload file when unable to save name to database
            if ( ! $newPhoto->save()) {
                return false;
            }

            // upload image to server
            if ($org_img == true) {
               Image::make($image)->fit(900, 500, function ($constraint) {
                       $constraint->upsize();
                   })->save($org_path);
            }


        }
    }

    return redirect('/home')->with('success','Images Uploaded');

}

1 Ответ

0 голосов
/ 31 мая 2019

Я нашел решение

public function uploadImage(Request $request) 
    {   
        $request->validate([
            'image' => 'required',
            'image.*' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048',
            'vehicle' => 'required'
        ]);

    //check if image exist
    if ($request->hasFile('image')) {
        $images = $request->file('image');

        // create new directory for uploading image if doesn't exist
        if( ! File::exists('images/'.auth()->user()->id.'/')) {
            $org_img = File::makeDirectory('images/'.auth()->user()->id.'/', 0777, true);
        }

        // loop through each image to save and upload
        foreach($images as $key => $image) {
            //create new instance of Photo class
            $newPhoto = new $this->photo;
            //get file name of image  and concatenate with 4 random integer for unique
            $filename = rand(1111,9999).time().'.'.$image->getClientOriginalExtension();
            //path of image for upload
            $org_path = 'images/'.auth()->user()->id.'/' . $filename;

            $newPhoto->image     = 'images/'.auth()->user()->id.'/' . $filename;
            $newPhoto->vehicle = $request->input('vehicle');
            //don't upload file when unable to save name to database
            if ( ! $newPhoto->save()) {
                return false;
            }
            // upload image to server
           Image::make($image)->fit(900, 500, function ($constraint) {
                   $constraint->upsize();
               })->save($org_path);


        }
    }

    return redirect('/home')->with('success','Images Uploaded');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...