FEATURE: allow multiple uploads

This commit is contained in:
Michal Kváček
2016-07-26 15:31:01 +02:00
parent bef37a5cce
commit 0d8148f22d
6 changed files with 63 additions and 70 deletions
+15 -12
View File
@@ -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));
}
+6 -2
View File
@@ -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 [];
}
}
-14
View File
@@ -1,14 +0,0 @@
<?php
namespace App\Http\Requests;
class UploadFileRequest extends UploadRequest
{
/**
* @internal param array $rules
*/
protected function setRules()
{
$this->rules = ['file' => 'required'];
}
}