52 lines
1.7 KiB
PHP
52 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Requests\Bo;
|
|
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
class ImportRequest extends FormRequest
|
|
{
|
|
/**
|
|
* Determine if the user is authorized to make this request.
|
|
*
|
|
* @return boolean
|
|
*/
|
|
public function authorize()
|
|
{
|
|
return Auth::check();
|
|
}
|
|
|
|
/**
|
|
* Get the validation rules that apply to the request.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function rules()
|
|
{
|
|
return [
|
|
'import' => [
|
|
'required',
|
|
'file',
|
|
'mimes:csv,txt',
|
|
// phpcs:ignore Generic.Files.LineLength.TooLong
|
|
'mimetypes:text/csv,text/plain,application/csv,text/comma-separated-values,text/anytext,application/octet-stream,application/txt',
|
|
// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed
|
|
function ($attribute, $value, $fail) {
|
|
/** @var \Illuminate\Http\UploadedFile */
|
|
$uploadedFile = $this->file('import');
|
|
$content = $uploadedFile->get();
|
|
if (
|
|
$uploadedFile->getClientMimeType() !== 'text/csv'
|
|
&& $uploadedFile->getClientMimeType() !== 'application/vnd.ms-excel'
|
|
) {
|
|
$fail(__('Le fichier doit être d\'un mime type text/csv ou application/vnd.ms-excel'));
|
|
}
|
|
if (!$content or mb_detect_encoding($content, ['ISO-8859-1'], true) !== 'ISO-8859-1') {
|
|
$fail(__('Le fichier doit etre encodé en ISO-8859-1'));
|
|
}
|
|
}
|
|
]
|
|
];
|
|
}
|
|
}
|