2016-07-12 18 views
0

Ich möchte eine APK-Datei mit yii2 Framework hochladen.Wie validiere Datei außer Bild in yii2 Rahmen

in Modell

public function rules() 
{ 
    return [ 
     [['apkFile'], 'file', 'skipOnEmpty' => true, 'extensions' => 'apk','mimeTypes'=>'application/*'], 
    ]; 
} 

public function upload() 
{ 
    if ($this->validate()) { 
     $this->apkFile->saveAs('affiliate/apkuploads/' . $this->apkFile->baseName . '.' . $this->apkFile->extension); 
     return true; 
    } else { 
     return false; 
    } 
} 

Kontroller

public function actionCreate() 
{ 
    $model = new ManageLinks(); 
    $post = Yii::$app->request->post(); 

    if(!empty($post)){ 
     $model->apkFile = UploadedFile::getInstance($model, 'apkFile'); 

     if ($model->upload()) { 
      echo 'True'; 
     }else{ 
      echo 'False'; 
     } 
    } 
    return; 
    return $this->render('create', [ 
     'model' => $model, 
     'data' => $data, 
    ]); 

} 

In Form

<?php $form = ActiveForm::begin(); ?> 

<?= $form->field($model, 'apkFile')->fileInput() ?> 


<div class="form-group"> 
    <?= Html::submitButton($model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> 
</div> 

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

Nach t Ausführung sein ich bekomme eine falsche Rückkehr. Bitte hilf mir dabei. In meinem localhost host ich Yii2 Framework unter Affiliate-Ordner. Meine vollständige URL ist:

http://localhost/affiliate/web/index.php 
+0

Bitte Code für das Formular veröffentlichen sowie –

+0

@ Unbekannt I e dit die Frage mit meinen Formulardaten bitte überprüfen. –

+0

Wenn die Validierung fällt, drucken Sie die Fehler aus, um zu sehen, warum. 'print_r ($ model-> errors)' oder fügen Sie eine Fehlerzusammenfassung '$ form-> errorSummary ($ model);' in das Formular ein. – Alex

Antwort

0

Pass

['enctype' => 'multipart/form-data'] 

in Ihrem Formular beginnen also

<?= Html::beginForm(['order/update', 'id' => $id], 'post', ['enctype' => 'multipart/form-data']) ?> 

http://www.yiiframework.com/doc-2.0/guide-helper-html.html#creating-forms

+0

Durch das Hinzufügen von 'ActiveForm :: begin();' wird das Attribut enctype automatisch in das Formular eingefügt. –

+0

var_dump ($ _ FILES); check hast du Datei in diesem? Drucken Sie auch var_dump ($ model-> getErrors()); um zu überprüfen, welche Fehler bei der Validierung aufgetreten sind. –