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.
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
1) maxSize parameter erwartet die Anzahl der bytes. In Ihrem Beispiel setzen Sie 1 Gb. Für 2 Mb sollte es sein:
2) überprüfen Sie Auch
upload_max_filesize
INI-Einstellung.3) Stellen Sie sicher, übergeben Sie die Instanz von yii\web\UploadedFile durch den Aufruf getInstance() - Methode (für mehrere Dateien verwenden getInstances()) vor Validierung:
Zeigen Sie den rest des Codes: wie behandeln Sie hochgeladen Bild, wie zeigen Sie es in form.
hochgeladen controller und view
'multiple' => true
- so wollen Sie mehrere Bilder hochladen, oder nur eine?ok vielen Dank!.sorry, aber wie Binde ich die Prüfung in diesem Fall?
InformationsquelleAutor arogachev
können Sie auch Bild-dimension, indem dieser zusammen mit max Datei Größe
dieser erlaubt den upload von maximal 2mb mit 250px Breite und 250px Höhe
InformationsquelleAutor Shuhad zaman
Können Sie in Ihrer Ansicht
pluginOptions
des FileInput-widget diese Eigenschaft:'maxFileSize' => 2048
. Es wird so etwas wie dieses:InformationsquelleAutor Tsveti