2017-05-08 1 views
-2

PHP Warnung hochladen - yii \ base \ ErrorYii2 Fehlerdatei

move_uploaded_file (/doc_2345.txt): failed to open stream: Permission

-Diese verweigert ist der Fehler, wenn ich versuche, eine Datei zu und speichern Sie es in der Datenbank (MYSQL). Ich bin neu beim Erstellen einer Website mit einem Framework. Also ich weiß nicht, wie ich es beheben kann.

_form.

<div class="documents-form"> 

<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?> 
<?= $form->field($model, 'reference_no')->textInput() ?> 
<?= $form->field($model, 'subject')->textInput(['maxlength' => true]) ?> 
<?= $form->field($model, 'doc_date')->textInput() ?> 
<?= $form->field($model, 'doc_for')->textInput(['maxlength' => true]) ?> 
<?= $form->field($model, 'doc_from')->textInput(['maxlength' => true]) ?> 
<?= $form->field($model, 'drawer_id')->textInput(['maxlength' => true]) ?> 
<?= $form->field($model, 'doc_file')->fileInput() ?> 
<div class="form-group"> 
    <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> 
</div> 

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

Modell.

public $file; 
public static function tableName() 
{ 
    return 'documents'; 
} 

/** 
* @inheritdoc 
*/ 
public function rules() 
{ 
    return [ 
     [['reference_no', 'subject', 'doc_date', 'doc_for', 'drawer_id','doc_from', 'doc_file'], 'required'], 
     [['reference_no'], 'integer'], 
     [['doc_date'], 'safe'], 
     [['subject', 'doc_for', 'drawer_id','doc_from'], 'string', 'max' => 250], 
     [['doc_file'], 'string', 'max' => 300], 
    ]; 
} 

Controller.

public function actionCreate() 
{ 
    $model = new Documents(); 

    if ($model->load(Yii::$app->request->post())) { 
     $model->save(); 
     $docuId = $model->reference_no; 
     $file = UploadedFile::getInstance($model, 'doc_file'); 
     $docuName = 'doc_' . $docuId . '.' . $file->getExtension(); 
     $file -> saveAs(Yii::getAlias('@webroot/filesPath') . '/' . $docuName); 
     $model -> doc_file = $docuName; 
     $model -> save(); 

     return $this -> redirect(['view', 'id' => $model->id]); 

    } else { 
     return $this->render('create', [ 
      'model' => $model, 
     ]); 
    } 
} 
+0

Ist '@ webroot/filesPath' vorhanden und schreibbar? – Chux

Antwort

1

Bitte ändern Sie Ordner Erlaubnis und alle anderen Datei & Ordner, in denen „filesPath“ -Ordner.

$file -> saveAs(Yii::getAlias('@webroot/filesPath') . '/' . $docuName); 

Ich denke, es wird Ihr Problem lösen.

+0

Danke. Es funktioniert jetzt: D –