Ich verwende Kartik FileInput.Yii2 Kartei Fileinput Validierung
Ich kann nicht validieren, d. H. Validierungsfehler wird immer noch angezeigt, wenn die erforderlichen Dateien angegeben werden. Folgendes ist mein Code. Die Dateien werden ordnungsgemäß hochgeladen. aber es wird immer noch angezeigt, dass "Bitte eine Datei hochladen".
Ausblick:
echo $form->field($model, 'image_file[]')->widget(FileInput::classname(), [
'pluginOptions' => [
'uploadUrl'=>Url::to('/kw/used-cars/upload'),
'browseOnZoneClick'=>true,
'uploadAsync'=> true,
'maxFileCount'=> 10,
'minFileCount'=> 4,
'validateInitialCount'=> true,
'overwriteInitial'=> false,
],
'pluginEvents'=>[
"fileclear" => "function() { log('fileclear'); }",
'filebatchselected'=>'function(event, files) {
var $input = $("#vehicles-image_file");
// alert($input);
// trigger upload method immediately after files are selected
$input.fileinput("upload");
}'
],
'options' => [
'accept' => 'image/*',
'multiple'=>true
]
]);
Aktion:
public function actionUpload()
{
$model = new Vehicles();
$model->image_file = UploadedFile::getInstances($model, 'image_file');
// print_R($model->fld_image);exit;
$images = '';
if ($model->image_file) {
foreach ($model->image_file as $file) {
$img_name = Yii::$app->getSecurity()->generateRandomString();
$file->saveAs('uploads/' . $img_name . '.' . $file->extension);
$images .= $img_name.'.'.$file->extension.'###';
}
$model->image_file = $images;
return true;
//return json_encode($model->image_file);
}
}
Modelleinstellungen:
[['image_name'], 'string', 'max' => 2556],
[['image_file'], 'file', 'extensions' => 'jpeg, jpg, png, gif','skipOnEmpty'=>false, 'maxSize'=>20*1024*1024, 'maxFiles'=>1000],
Upload-Funktion:
public function actionUpload()
{
$model = new Vehicles();
$model->image_file = UploadedFile::getInstances($model, 'image_file');
// print_R($model->fld_image);exit;
$images = '';
if ($model->image_file) {
foreach ($model->image_file as $file) {
$img_name = Yii::$app->getSecurity()->generateRandomString();
$file->saveAs('uploads/' . $img_name . '.' . $file->extension);
$images .= $img_name.'.'.$file->extension.'###';
}
$model->image_file = $images;
return true;
//return json_encode($model->image_file);
}
}
Möglicherweise gibt es einige Konflikte in JS/jQuery-Dateien. Überprüfen Sie die Konsole, wenn Fehler auftreten. –