FEATURE: allow multiple uploads
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace App\Http\Controllers\Admin;
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
use App\Http\Requests\UploadFileRequest;
|
|
||||||
use App\Models\File;
|
use App\Models\File;
|
||||||
|
use App\Http\Requests\Request;
|
||||||
use Symfony\Component\HttpFoundation\File\Exception\FileException;
|
use Symfony\Component\HttpFoundation\File\Exception\FileException;
|
||||||
|
|
||||||
class UploadFile extends Controller
|
class UploadFile extends Controller
|
||||||
@@ -22,28 +22,31 @@ class UploadFile extends Controller
|
|||||||
/**
|
/**
|
||||||
* Uploads any file
|
* Uploads any file
|
||||||
*
|
*
|
||||||
* @param UploadFileRequest $request
|
|
||||||
*
|
|
||||||
* @return \Illuminate\Http\RedirectResponse
|
* @return \Illuminate\Http\RedirectResponse
|
||||||
*/
|
*/
|
||||||
public function postFile(UploadFileRequest $request)
|
public function postFile(Request $request)
|
||||||
{
|
{
|
||||||
if (!$request->hasFile('file')) {
|
|
||||||
return $this->invalidUpload('noFileSpecified');
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
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
|
// we do not want to redirect
|
||||||
if ($request->ajax()) {
|
if ($request->ajax()) {
|
||||||
return $this->jsonResponse($uploadedFile);
|
return $this->jsonResponse($uploadedFiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
// upload was not performed via ajax, redirect user
|
// upload was not performed via ajax, redirect user
|
||||||
return redirect()
|
return redirect()
|
||||||
->route('upload.overview', ['directory' => $request->directoryId])
|
->route('upload.overview', ['directory' => $request->directoryId])
|
||||||
->with('success', trans('admin/fileManager.uploadSuccessfull'));
|
->with('success', trans_choice('admin/fileManager.uploadSuccessfull', $successfullUploads));
|
||||||
} catch (FileException $e) {
|
} catch (FileException $e) {
|
||||||
return $this->invalidUpload('invalidFile');
|
return $this->invalidUpload('invalidFile');
|
||||||
}
|
}
|
||||||
@@ -52,7 +55,7 @@ class UploadFile extends Controller
|
|||||||
protected function invalidUpload($message)
|
protected function invalidUpload($message)
|
||||||
{
|
{
|
||||||
return redirect()
|
return redirect()
|
||||||
->route('upload.file')
|
->route('upload.overview')
|
||||||
->with('error', trans('admin/fileManager.' . $message));
|
->with('error', trans('admin/fileManager.' . $message));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ namespace App\Http\Requests;
|
|||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
|
||||||
abstract class Request extends FormRequest
|
class Request extends FormRequest
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Determine if the user is authorized to make this request.
|
* Determine if the user is authorized to make this request.
|
||||||
@@ -13,7 +13,11 @@ abstract class Request extends FormRequest
|
|||||||
*/
|
*/
|
||||||
public function authorize()
|
public function authorize()
|
||||||
{
|
{
|
||||||
|
|
||||||
return true;
|
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'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,41 +1,41 @@
|
|||||||
<?php
|
<?php
|
||||||
return [
|
return [
|
||||||
"createSubdirectoryFor" => "Vytvořit podadresář v :directory.",
|
"createSubdirectoryFor" => "Vytvořit podadresář v :directory.",
|
||||||
"createdAt" => "Nahráno",
|
"createdAt" => "Nahráno",
|
||||||
"description" => "Popis souboru",
|
"description" => "Popis souboru",
|
||||||
"directories" => "Podadresáře v adresáři :directory",
|
"directories" => "Podadresáře v adresáři :directory",
|
||||||
"directoryDescription" => "Popis",
|
"directoryDescription" => "Popis",
|
||||||
"directoryHidden" => "Skrytý adresář",
|
"directoryHidden" => "Skrytý adresář",
|
||||||
"directoryName" => "Jméno adresáře",
|
"directoryName" => "Jméno adresáře",
|
||||||
"edit" => "Upravit soubor :name",
|
"edit" => "Upravit soubor :name",
|
||||||
"editButton" => "Upravit",
|
"editButton" => "Upravit",
|
||||||
"editDirectory" => "Upravit adresář",
|
"editDirectory" => "Upravit adresář",
|
||||||
"editDirectorySuccess" => "Úspěšně uloženo",
|
"editDirectorySuccess" => "Úspěšně uloženo",
|
||||||
"encoding" => "Kódování",
|
"encoding" => "Kódování",
|
||||||
"fileDeleted" => "Soubor smazán",
|
"fileDeleted" => "Soubor smazán",
|
||||||
"fileInfo" => "Informace",
|
"fileInfo" => "Informace",
|
||||||
"fileSize" => "Velikost",
|
"fileSize" => "Velikost",
|
||||||
"hash" => "Hash",
|
"hash" => "Hash",
|
||||||
"invalidFile" => "Nahrávaný soubor nelze nahrát, z nějakého důvodu není validní.",
|
"invalidFile" => "Nahrávaný soubor nelze nahrát, z nějakého důvodu není validní.",
|
||||||
"keywords" => "Klíčová slova (oddělena čárkou)",
|
"keywords" => "Klíčová slova (oddělena čárkou)",
|
||||||
"mime" => "MIME typ",
|
"mime" => "MIME typ",
|
||||||
"name" => "Jméno",
|
"name" => "Jméno",
|
||||||
"newDirectory" => "Vytvořit nový adresář",
|
"newDirectory" => "Vytvořit nový adresář",
|
||||||
"newDirectorySuccess" => "Nový adresář úspěšně vytvořen",
|
"newDirectorySuccess" => "Nový adresář úspěšně vytvořen",
|
||||||
"newFile" => "Nový soubor",
|
"newFile" => "Nový soubor",
|
||||||
"noFileSpecified" => "Nebyl zvolen žádný soubor k nahrávání",
|
"noFileSpecified" => "Nebyl zvolen žádný soubor k nahrávání",
|
||||||
"noFiles" => "Žádný soubor nebyl nalezen",
|
"noFiles" => "Žádný soubor nebyl nalezen",
|
||||||
"noSubdirectories" => "Žádné podadresáře",
|
"noSubdirectories" => "Žádné podadresáře",
|
||||||
"originalFilename" => "Původní jméno",
|
"originalFilename" => "Původní jméno",
|
||||||
"overview" => "Seznam všech souborů",
|
"overview" => "Seznam všech souborů",
|
||||||
"parentDirectory" => "Rodičovský adresář",
|
"parentDirectory" => "Rodičovský adresář",
|
||||||
"resolution" => "Rozlišení",
|
"resolution" => "Rozlišení",
|
||||||
"rootDirectories" => "Kořenové adresáře",
|
"rootDirectories" => "Kořenové adresáře",
|
||||||
"selectFile" => "Vybrat soubor",
|
"selectFile" => "Vybrat soubor",
|
||||||
"subdirectoryExists" => "Adresář s tímto jménem tu již eixstuje",
|
"subdirectoryExists" => "Adresář s tímto jménem tu již eixstuje",
|
||||||
"successfullyChanged" => "Úspěšně uloženo",
|
"successfullyChanged" => "Úspěšně uloženo",
|
||||||
"updatedAt" => "Poslední změna",
|
"updatedAt" => "Poslední změna",
|
||||||
"upload" => "Nahrát nový soubor",
|
"upload" => "Nahrát nový soubor",
|
||||||
"uploadSuccessfull" => "Soubor úspěšně nahrán",
|
"uploadSuccessfull" => "Soubor úspěšně nahrán|:count soubory úspěšně nahrány|:count souborů úspěšně nahráno",
|
||||||
"url" => "Veřejá URL",
|
"url" => "Veřejá URL",
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ return [
|
|||||||
'mime' => 'MIME type',
|
'mime' => 'MIME type',
|
||||||
'invalidFile' => 'The file you submitted is somehow not valid file!',
|
'invalidFile' => 'The file you submitted is somehow not valid file!',
|
||||||
'noFileSpecified' => 'You have not specified any file for upload',
|
'noFileSpecified' => 'You have not specified any file for upload',
|
||||||
'uploadSuccessfull' => 'Your file was successfully uploaded',
|
'uploadSuccessfull' => 'Your file was successfully uploaded|:count files successfully uploaded',
|
||||||
'selectFile' => 'Select file for upload',
|
'selectFile' => 'Select file for upload',
|
||||||
'name' => 'Name',
|
'name' => 'Name',
|
||||||
'keywords' => 'Keywords (comma separated)',
|
'keywords' => 'Keywords (comma separated)',
|
||||||
|
|||||||
@@ -10,11 +10,11 @@
|
|||||||
<label>
|
<label>
|
||||||
@lang('admin/fileManager.selectFile')
|
@lang('admin/fileManager.selectFile')
|
||||||
|
|
||||||
<input type="file" name="file" id="file" />
|
<input type="file" multiple name="files[]" id="file" />
|
||||||
|
|
||||||
@if (isset($errors) && $errors->has('file'))
|
@if (isset($errors) && $errors->has('files[]'))
|
||||||
<div class="callout alert">
|
<div class="callout alert">
|
||||||
{{ $errors->first('file') }}
|
{{ $errors->first('files[]') }}
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
</label>
|
</label>
|
||||||
|
|||||||
Reference in New Issue
Block a user