Я пытаюсь загрузить несколько файлов для одной строки, используя Laravel и Ajax.Для одного изображения это работает хорошо, но когда я пытаюсь загрузить несколько изображений, всегда получаю сообщение об ошибке: «Файл должен быть файлом типа: JPEG, PNG, BMP, GIF, SVG, DOCX, XLSX, PDF».Я хочу сделать что-то вроде этого:
id | client_id | files
---|-----------|------
1 | 1 | image.png, test.pdf
---|-----------|------
2 | 2 | imag3.png, test.docx
tasks.blade.php
<form method="post" id="addTask_form" name="addtask" enctype="multipart/form-data">
..........
<div class="form-group">
<label>File</label>
<input type="file" name="file[]" id="file" multiple />
</div>
TasksController.php
$validation = Validator::make($request->all(), [
'employee_id' => 'required',
.......
'file' => 'nullable|mimes:jpeg,png,bmp,gif,svg,docx,xlsx,pdf',
]);
if($request->hasFile('file')){
$image = $request->file('file');
$data = [];
foreach ($image as $img) {
$new_name = rand() . '.' . $img->getClientOriginalExtension();
$img->move(public_path('uploads'), $new_name);
$data[] = $new_name;
$task = Task::find($request->get('task_id'));
$task->employee_id = $request->get('employee_id');
..............
$task->file = json_encode($data);
$task->save();
}
}
Чем мне нужно получить каждыйзначение массива в виде отдельной строки в моем datatable для того, чтобы он мог быть активнымНапример:
id | client_id | files
---|-----------|------
1 | 1 | 287319667.jpg | 2074802246.jpg
---|-----------|------
2 | 2 | 2074802246.jpg | 2074802246.jpg
Вот мой столбец с данными:
return Datatables::of($tasks)
->editColumn('link', function ($link) {
return '<a href="public/uploads/'.$link->file.' >'.$link->file.'</a>';
})
, и он возвращает полный массив, например: ["287319667.jpg", "2074802246.jpg"] Итак, янужно показать так: 287319667.jpg |2074802246.jpg.
Заранее спасибо