Как отобразить «обработку данных» в Laravel после отправки формы? - PullRequest
0 голосов
/ 25 марта 2020

Я создаю приложение Laravel, в котором пользователь может отправлять URL-адреса изображений в форме. Каждая новая строка имеет URL и после отправки в контроллер я обрабатываю изображения и затем они сохраняются на сервере в профиле пользователя. У меня нет проблем с функциональностью, а не с способом показать «обработку» посетителю.

Моя цель заключается в следующем.

Когда пользователь отправляет, скажем, 15 ссылки на изображения после отправки формы. Я хочу показать на экране под формой поле, в котором обработанные изображения будут отображаться как отправленные и выполненные, а если возникнет проблема с отправленной ссылкой, то будет показано, что она не выполнена.

В данный момент мне приходится ждать, пока система загрузит все изображения, и после этого я могу перенаправить их на страницу «Успех», какие-либо советы о том, как я могу показать обработку в реальном времени? Я знаю, что должен использовать AJAX, но любые предложения, как изменить Laravel logi c, чтобы я мог вернуться и перенаправить на страницу, но в то же время продолжить обработку данных и показать ответ ?

Форма:

<form class="form-horizontal" action="{{route('image.process')}}" method="post">
  {{ csrf_field() }}
  {{ method_field('post') }}
  <textarea name="links" id="links" class="form-control" placeholder="..." rows="10"></textarea>
  <button class="btn btn-success waves-effect waves-light" type="submit">Submit</button>
</form>

Контроллер:

public function process(Requests $request)
{

  $request_array = explode(PHP_EOL, $request->links);
  $request_array = str_replace("\n", '', $request_array);
  $request_array = str_replace("\r", '', $request_array);

  foreach ($request_array as $image) {
      $user = Auth::user();

      $filePath = 'uploads/images/'.$user->id.'/';
      $filePublicPath = public_path($filePath);

      if(getimagesize($image)){
          $fileInfo = new \SplFileInfo($image);
          $fileExtension = image_type_to_extension(exif_imagetype($fileInfo));
          $fileName = str_random(20).$fileExtension;
          copy($image, $filePublicPath.$fileName);

          $user->images()->create(['file' => $filePath.$fileName]);
          $user->save();
      }
  }

  return redirect()->route('user.submitted');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...