Используйте вставленные идентификаторы из загруженных данных изображений Laravel и Dropzone - PullRequest
0 голосов
/ 20 марта 2019

У меня есть форма с Div-зоной Dropzone для массовой загрузки изображений с другими данными.

Но, поскольку изображения загружаются с помощью ajax, мне нужно знать, какие идентификаторы назначены этим изображениям.

Проблема возникла, когда я сохранил эти идентификаторы в данных сеанса.Он просто сохраняет первый и последний идентификаторы.

Например, когда я отправляю 4 изображения, он возвращает мне второй и последний идентификатор.

?

Мой метод контроллера(через Ajax):

public function store(Request $request)
    {
        $photos = $request->file('file');

        if (!is_array($photos))
            $photos = [$photos];

        if (!is_dir($this->photos_path))
            mkdir($this->photos_path, 0777);


        for ($i = 0; $i < count($photos); $i++) {

            $photo = $photos[$i];
            $name = sha1(date('YmdHis') . str_random(30));
            $save_name = $name . '.' . $photo->getClientOriginalExtension();
            $resize_name = $name . str_random(2) . '.' . $photo->getClientOriginalExtension();

            Image::make($photo)
                ->resize(250, null, function ($constraints) {
                    $constraints->aspectRatio();
                })
                ->save($this->photos_path . '/' . $resize_name);

            $photo->move($this->photos_path, $save_name);

            $upload = new UploadedImages();
            $upload->filename = $save_name;
            $upload->resized_name = $resize_name;
            $upload->original_name = basename($photo->getClientOriginalName());
            $upload->user_id = Auth::id();
            $upload->save();

            Session::push('uploaded_images_ids', $upload->id);
        }

        return Response::json(['message' => 'Image saved Successfully'], 200);
    }

Ответ с панелью отладки (должен отвечать 4 идентификатора, а не 2): laravel debug bar

1 Ответ

0 голосов
/ 20 марта 2019

Вы можете создать массив для хранения вашего изображения и идентификатора

Вот идея ниже

$image_array = [];
for ($i = 0; $i < count($photos); $i++) {
   ....
   array_push($image_array,['image_name' => $save_name, 'image_id' => $upload->id]);
}
...