Bild-maximale Datei-Größe mit validator

Ich die Umsetzung Bild-upload in Yii2 mit Datei-Eingabe-Widget, wie gezeigt, in http://demos.krajee.com/widget-details/fileinput. Darf ich wissen, wie man die hochgeladene Datei Größe begrenzen?

Habe ich Hinzugefügt:

['image', 'file', 'extensions' => ['png', 'jpg', 'gif'], 'maxSize' => 1024 * 1024 * 1024],

innerhalb des Modells rules() aber es scheint nicht zu funktionieren.

Hoffe mir kann jemand beraten. Danke.

Im Blick:

<?php $form = ActiveForm::begin(['enableClientValidation' => false,  'options' => [ 'enctype' => 'multipart/form-data']]); ?>


<?php

echo $form->field($model, 'image')->widget(FileInput::classname(), [
    'options'=>['accept'=>'image/*', 'multiple'=>true],
    'pluginOptions'=>['allowedFileExtensions'=>['jpg', 'jpeg', 'gif','png']]
]);

?>

<?php ActiveForm::end(); ?>

Controller:

    $model = new IMAGEMODEL();  

    Yii::$app->params['uploadPath'] = Yii::$app->basePath . '/web/uploads/PROJECT/';


    if ($model->load(Yii::$app->request->post())) {
        //get the uploaded file instance. for multiple file uploads
        //the following data will return an array
        $image = UploadedFile::getInstance($model, 'image');


        //store the source file name
        $model->FILENAME = $image->name;
        $ext = end((explode(".", $image->name)));

        //generate a unique file name

        $model->AVATAR = Yii::$app->security->generateRandomString().".{$ext}";
        $model->STD_ID=$_POST['IMAGEMODEL']['STD_ID'];


        //the path to save file, you can set an uploadPath
        //in Yii::$app->params (as used in example below)
        $path = Yii::$app->params['uploadPath'] . $model->AVATAR;

        if($model->save()){
            $image->saveAs($path);
            Yii::$app->session->setFlash('success', 'Image uploaded successfully');
            return $this->redirect(['view', 'id'=>$id]);

        } else {
            Yii::$app->session->setFlash('error', 'Fail to save image');
        }
    }

Im Modell:

public function rules()
{
    return [
        [['STD_ID', 'FILENAME'], 'required'],
        [['FILENAME'], 'string'],
        [['LAST_UPD_ON'], 'safe'],
        [['STD_ID'], 'string', 'max' => 50],
        [['LAST_UPDATE_BY'], 'string', 'max' => 150],

        [['image', 'FILENAME'], 'safe'],
        ['image', 'file', 'extensions' => ['png', 'jpg', 'gif'], 'maxSize' => 1024 * 1024 * 1],

    ];
}
Was Größe, die Sie festlegen möchten als limit??? 1 Gb oder 1 Mb?
ich möchte Grenzwert als 2Mb..
Hat meine Antwort dir helfen? Ist das problem nun behoben?
ich bin nicht in der Lage zu verwenden, die Methode, wie das system immer noch nicht aufhören, mich von Upload größere Dateien, Bilder und so musste ich die manuelle überprüfung wie bereits erwähnt...
Ich denke der Fehler ist irgendwo anders, da, dass die Gültigkeitsregel nicht den gleichen genauen check für die maximale Größe.

InformationsquelleAutor esiaz | 2015-02-04

Schreibe einen Kommentar