Laravel массив с подсветкой объектов - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь передать изображения из AJAX на сервер и загрузить их, сохранить их имена в базе данных.

Мой код AJAX:

var form_data = new FormData($('.updateForm')[0]);

            $.ajax({

                method: "POST",
                url: "/updateMyPost",
                data: form_data,
                cache : false,
                contentType: false,
                processData: false,
                success: function (result) {

                    console.log(result);

                }

            });

Функция Laravel для загрузки файлов:

public function updateMyPost(Request $request){

        $name = $request->input('text');

        $images = $request->file('images');

        foreach($images as $image){

            $image_name = time() . $image->getClientOriginalName();

            $path = public_path('images');

            $img->move($path,$image_name);

        }  

    }

И это то, что дает мне $ request-> file ("images"), когда я его распечатываю.

Array
(
    [0] => Illuminate\Http\UploadedFile Object
        (
            [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
            [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => images.jpg
            [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/jpeg
            [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
            [hashName:protected] => 
            [pathName:SplFileInfo:private] => C:\xampp\tmp\phpAB87.tmp
            [fileName:SplFileInfo:private] => phpAB87.tmp
        )

    [1] => Illuminate\Http\UploadedFile Object
        (
            [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
            [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => iphonex-TA.jpg
            [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/jpeg
            [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
            [hashName:protected] => 
            [pathName:SplFileInfo:private] => C:\xampp\tmp\phpAB88.tmp
            [fileName:SplFileInfo:private] => phpAB88.tmp
        )

)

Как я могу получить имя каждого изображения, а также загрузить их?

1 Ответ

0 голосов
/ 04 июля 2019

Как вы сказали, вы загружаете несколько изображений, поэтому ваш store() метод должен выглядеть ниже

public function updateMyPost(Request $r)
{
    $images = $r->images;
    foreach($images as $image)
    {
        $path = $image->store('public/images');
        $image_name = $image->getClientOriginalName();

        // to store data in your table
        Model::create([
          'path' => $path,
          'name' => $image_name
        ])
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...