Загрузка нескольких изображений Dropzone с Laravel возвращает ноль - PullRequest
0 голосов
/ 23 октября 2019

Вот моя форма и код JavaScript. Когда я нажимаю кнопку отправки, поле электронной почты имеет значение, но поле файла не имеет значения. Пожалуйста, помогите!

<form action="{{ route('projects.store') }}" class="dropzone" method="post">

  {{ csrf_field() }}
  <div class="form-group {{ $errors->has('email') ? 'has-error': '' }}">
    <input type="text" name="email" placeholder="Enter email" class="form-control"><br>
    @if($errors->has('email'))
      <span class="help-block">
        {{ $errors->first('email') }}
      </span>
    @endif
  </div>

  <div class="fallback">
    <input name="file" type="file" multiple />
  </div>

  <input type="submit" name="" class="btn btn-danger" value="Submit" id="uploadfiles">
</form>

<script type="text/javascript">

  Dropzone.autoDiscover = false;

  var myDropzone = new Dropzone(".dropzone", 
  { 
    autoProcessQueue: false,
    parallelUploads: 10 // Number of files process at a time (default 2)
  });

  $('#uploadfiles').click(function()
  {
    myDropzone.processQueue();
 });
</script>

Вот моя форма и код JavaScript. Когда я нажимаю кнопку отправки, поле электронной почты имеет значение, но поле файла не имеет значения. Пожалуйста, помогите! Вот мой метод управления

public function store(Request $request)
    {
        $this->validate($request, [
            'email' => 'required',
        ]);

        $email = $request->email;
        $file = $request->file('file');
        if($request->hasFile('file'))
        {
            dd('exist');
        }
        else
        {
            dd('no file');
        }

        exit();

        foreach($request->file('file') as $file)
        {
            $file_name = $file->getClientOriginalName();
            $file->move('/uploads', $file_name);
            dd('uploaded');
        }
    }

1 Ответ

2 голосов
/ 23 октября 2019

Вы должны добавить enctype="multipart/form-data" в свой тег формы для загрузки файла.

Также, чтобы получить несколько файлов в вашем контроллере, вы должны изменить имя файла на file[] следующим образом.

<input name="file[]" type="file" multiple />
...