php - float - laravel validation unique update
Laravel File Upload Validation (2)
Soy nuevo en Laravel. Tengo un formulario con una función de carga de archivos en él. ¿Cómo puedo validar su archivo? Solo permitiré los archivos de Microsoft Word. Aquí está mi código de validación.
Solo quiero comprobar si insertan un archivo de palabra MS y si no, no se procesará.
public function store()
{
// Validate
$rules = array(
''pda'' => ''required|unique:forms'',
''controlnum'' => ''required|unique:forms'',
''date'' => ''required'',
''churchname'' => ''required'',
''title'' => ''required'',
''pastorname'' => ''required'',
''contactnum'' => ''required'',
''address'' => ''required'',
''state'' => ''required'',
''region'' => ''required'',
''area'' => ''required'',
''city'' => ''required'',
''zipcode'' => ''required|numeric|max:9999'',
''tgjteachertraining'' => ''required'',
''localcontact'' => ''required'',
''tgjdatestart'' => ''required'',
''tgjdateend'' => ''required'',
''tgjcourse'' => ''required|numeric'',
''childrengraduated'' => ''required|numeric|max:450'',
''childrenacceptjesus'' => ''required|numeric'',
''howmanycomitted'' => ''required|numeric'',
''recievedbibles'' => ''required|numeric'',
''descgradevent'' => ''required'',
''whatwillyoudo'' => ''required'',
''pastortest'' => ''required'',
''teachertest'' => ''required'',
''childrentest'' => ''required'',
''file'' => ''required|max:10000'',
);
$validator = Validator::make(Input::all(), $rules);
// process the form
if ($validator->fails()) {
return Redirect::to(''forms/create'')->withErrors($validator);
} else {
// store
$forms = new Forms;
$forms->pda = Input::get(''pda'');
$forms->controlnum = Input::get(''controlnum'');
$forms->date = Input::get(''date'');
$forms->churchname = ucwords(Input::get(''churchname''));
$forms->title = ucwords(Input::get(''title''));
$forms->pastorname = ucwords(Input::get(''pastorname''));
$forms->address = Input::get(''address'');
$forms->contactnum = Input::get(''contactnum'');
$forms->state = Input::get(''state2'');
$forms->region = Input::get(''region2'');
$forms->area = Input::get(''area2'');
$forms->citytown = Input::get(''city2'');
$forms->zipcode = Input::get(''zipcode'');
$forms->tgjteachertraining = Input::get(''tgjteachertraining'');
$forms->localcontact = ucwords(Input::get(''localcontact''));
$forms->tgjdatestart = Input::get(''tgjdatestart'');
$forms->tgjdateend = Input::get(''tgjdateend'');
$forms->tgjcourse = Input::get(''tgjcourse'');
$forms->childrengraduated = Input::get(''childrengraduated'');
$forms->childrenacceptjesus = Input::get(''childrenacceptjesus'');
$forms->howmanycomitted = Input::get(''howmanycomitted'');
$forms->recievedbibles = Input::get(''recievedbibles'');
$forms->descgradevent = Input::get(''descgradevent'');
$forms->whatwillyoudo = Input::get(''whatwillyoudo'');
$forms->pastortest = Input::get(''pastortest'');
$forms->teachertest = Input::get(''teachertest'');
$forms->childrentest = Input::get(''childrentest'');
$file = Input::file(''file'');
$filename = $file->getClientOriginalName();
$destinationPath = ''uploads/''.Input::get(''pda'');
$uploadSuccess = Input::file(''file'')->move($destinationPath, $filename);
$forms->docurl = ''uploads/''.Input::get(''pda'').''/''.$filename;
if( $uploadSuccess ) {
$forms->save();
//Session::flash(''message'', ''Successfully submitted form!'');
return Redirect::to(''forms/create'');
Session::flash(''message'', ''Successfully submitted form!'');
}
else {
return Response::json(''error'', 400);
}
}
}
Para validar el tipo de mime de una entrada de archivo en Laravel, puede usar la regla mimes
. Recuerde hacer coincidir el tipo de mimo detectado con el mimo real del archivo que proporciona. Puede variar en diferentes servidores.
Por ejemplo, desea habilitar la adición y el documento de Word en su formulario:
1) en config/mimes.php
agrega los siguientes tipos de mime:
''doc'' => array(''application/msword'', ''application/vnd.ms-office''),
''docx'' => array(''application/vnd.openxmlformats-officedocument.wordprocessingml.document'', ''application/zip''),
2) en sus $rules
validación agregue los siguientes elementos:
''file'' => ''required|max:10000|mimes:doc,docx'' //a required, max 10000kb, doc or docx file
¿Prueba esto?
''file'' => ''required|max:10000|mimes:application/vnd.openxmlformats-officedocument.wordprocessingml.document''
Si lo desea, puede establecer algunos mensajes personalizados para la respuesta :)