- add translated description

- creator required
- filesize vrom ini file
- correctly delete dataset in SubmitController
This commit is contained in:
Arno Kaimbacher 2019-07-03 18:32:41 +02:00
parent 4f8ef4fc30
commit a463cb9e4c
10 changed files with 79 additions and 29 deletions

View file

@ -271,7 +271,7 @@ class IndexController extends Controller
$files = count($request->file('files')) - 1;
foreach (range(0, $files) as $index) {
// $rules['files.' . $index] = 'image|max:2048';
$rules['files.' . $index . '.file'] = ['required', 'file', new RdrFiletypes(), new RdrFilesize($index + 1)];
$rules['files.' . $index . '.file'] = ['required', new RdrFiletypes(), new RdrFilesize($index + 1)];
}
}
$validator = Validator::make($request->all(), $rules);

View file

@ -98,16 +98,7 @@ class SubmitController extends Controller
public function delete($id): RedirectResponse
{
$dataset = Dataset::with('files')->findOrFail($id);
if ($dataset->server_state != "inprogress" || $dataset->server_state != "rejected_editor") {
session()->flash(
'flash_message',
'You cannot delete this datastet!'
. ' There status of this dataset is '
. $dataset->server_state
. ' !'
);
return redirect()->route('settings.project');
} else {
if ($dataset->server_state == "inprogress" || $dataset->server_state == "rejected_editor") {
if ($dataset->files->count() > 0) {
foreach ($dataset->files as $file) {
if (isset($file->path_name)) {
@ -117,7 +108,16 @@ class SubmitController extends Controller
}
$dataset->delete();
session()->flash('flash_message', 'You have deleted 1 dataset!');
return redirect()->route('publish.workflow.index');
return redirect()->route('publish.workflow.submit.index');
} else {
session()->flash(
'flash_message',
'You cannot delete this datastet!'
. ' There status of this dataset is '
. $dataset->server_state
. ' !'
);
return redirect()->route('publish.workflow.submit.index');
}
}

View file

@ -16,7 +16,8 @@ class RdrFilesize implements Rule
*/
public function __construct($fileIndex)
{
$this->maxFileSize = Config::get('enums.max_filesize');
$this->maxFileSize = $this->maximumUploadSize();
//ini_get('upload_max_filesize');// Config::get('enums.max_filesize');//10240
$this->fileIndex = $fileIndex;
}
@ -32,7 +33,7 @@ class RdrFilesize implements Rule
//return Rule::in($this->filetypes);
// $upload_max_size = ini_get('upload_max_filesize');
$fileSize = filesize($value);
return $fileSize <= $this->maxFileSize * 1024;
return $fileSize <= $this->maxFileSize;
// return $this->getSize($attribute, $value) <= $this->maxFileSize;
}
@ -45,6 +46,51 @@ class RdrFilesize implements Rule
{
return 'file number '. $this->fileIndex .' is too large for the destination storage system.';
}
/**
* The maximum file upload size by getting PHP settings
* @return integer|float file size limit in BYTES based
*/
private function maximumUploadSize()
{
static $upload_size = null;
if ($upload_size === null) {
$post_max_size = $this->returnBytes('post_max_size');
$upload_max_filesize = $this->returnBytes('upload_max_filesize');
$memory_limit = $this->returnBytes('memory_limit');
// Even though we disable all of variables in php.ini. These still use default value
// Nearly impossible but check for sure
if (empty($post_max_size) && empty($upload_max_filesize) && empty($memory_limit)) {
return false;
}
$upload_size = min($post_max_size, $upload_max_filesize, $memory_limit);
}
return $upload_size;
}
private function returnBytes($val)
{
$value = ini_get($val);
// Value must be a string.
if (!is_string($value)) {
return false;
}
preg_match('/^(?<value>\d+)(?<option>[K|M|G]*)$/i', $value, $matches);
$value = (int) $matches['value'];
$option = strtoupper($matches['option']);
if ($option) {
if ($option === 'K') {
$value *= 1024;
} elseif ($option === 'M') {
$value *= 1024 * 1024;
} elseif ($option === 'G') {
$value *= 1024 * 1024 * 1024;
}
}
return $value;
}
/**
* Get the size of an attribute.