FEATURE: allow multiple uploads
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
<?php
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Requests\UploadFileRequest;
|
||||
use App\Models\File;
|
||||
use App\Http\Requests\Request;
|
||||
use Symfony\Component\HttpFoundation\File\Exception\FileException;
|
||||
|
||||
class UploadFile extends Controller
|
||||
@@ -22,28 +22,31 @@ class UploadFile extends Controller
|
||||
/**
|
||||
* Uploads any file
|
||||
*
|
||||
* @param UploadFileRequest $request
|
||||
*
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function postFile(UploadFileRequest $request)
|
||||
public function postFile(Request $request)
|
||||
{
|
||||
if (!$request->hasFile('file')) {
|
||||
return $this->invalidUpload('noFileSpecified');
|
||||
}
|
||||
|
||||
try {
|
||||
$uploadedFile = $this->file->upload($request->file('file'), $request);
|
||||
$uploadedFiles = [];
|
||||
$files = $request->all()['files'];
|
||||
$successfullUploads = 0;
|
||||
|
||||
foreach ($files as $file) {
|
||||
$uploadedFile = $this->file->upload($file, $request);
|
||||
$successfullUploads++;
|
||||
|
||||
$uploadedFiles[] = $uploadedFile;
|
||||
}
|
||||
|
||||
// we do not want to redirect
|
||||
if ($request->ajax()) {
|
||||
return $this->jsonResponse($uploadedFile);
|
||||
return $this->jsonResponse($uploadedFiles);
|
||||
}
|
||||
|
||||
// upload was not performed via ajax, redirect user
|
||||
return redirect()
|
||||
->route('upload.overview', ['directory' => $request->directoryId])
|
||||
->with('success', trans('admin/fileManager.uploadSuccessfull'));
|
||||
->with('success', trans_choice('admin/fileManager.uploadSuccessfull', $successfullUploads));
|
||||
} catch (FileException $e) {
|
||||
return $this->invalidUpload('invalidFile');
|
||||
}
|
||||
@@ -52,7 +55,7 @@ class UploadFile extends Controller
|
||||
protected function invalidUpload($message)
|
||||
{
|
||||
return redirect()
|
||||
->route('upload.file')
|
||||
->route('upload.overview')
|
||||
->with('error', trans('admin/fileManager.' . $message));
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
abstract class Request extends FormRequest
|
||||
class Request extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
@@ -13,7 +13,11 @@ abstract class Request extends FormRequest
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules()
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
class UploadFileRequest extends UploadRequest
|
||||
{
|
||||
/**
|
||||
* @internal param array $rules
|
||||
*/
|
||||
protected function setRules()
|
||||
{
|
||||
$this->rules = ['file' => 'required'];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user