"Enter"a basıp içeriğe geçin

Yii2 servera dosya yüklemek

veritabanında varchar olarak alan tanımlanmış durumdayken. model dosyası içine

public $file;

şeklinde değişken tanımladık. rules fonksiyonu içine aşağıdaki şekilde tanımlamayı ekliyoruz.

[[‘file’],’file’,’skiponEmpty’=>false,’extensions’=>’pdf’],

daha sonra view kısmında

<?php $form = ActiveForm::begin([‘options’=>[‘enctype’=>’multipart/form-data’]]); ?>

şeklinde bir düzenleme yapıyoruz. ve file için alan açıyoruz.

<?= $form->field($model, ‘file’)->fileInput() ?>

şimdi controller tarafında kodlamaya geçebiliriz. create fonksiyonunu aşağıdaki şekilde güncelliyoruz.
(tabi bu sırada backend\web içerisine birimresmiyazilar adında bir klasör açıyoruz ve terminali açarak aşağıdaki komutla yeni klasöre yazma izni veriyoruz.

chmod -R 777 /var/www/html/advanced/backend/web/birimresmiyazilar/)

 

use yii\web\UploadedFile;

tanımlamasını ekliyoruz.

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

if ($model->load(Yii::$app->request->post())) {

$dosyaadi=$model->birim_adi;
$model->file =UploadedFile::getInstance($model,’file’);
$model->file->saveAs(‘birimresmiyazilar/’.$dosyaadi.”.”.$model->file->extension);

$model->resmi_yazi=’birimresmiyazilar/’.$dosyaadi.”.”.$model->file->extension;

$model->save();
return $this->redirect([‘view’, ‘id’ => $model->id]);
} else {
return $this->render(‘create’, [
‘model’ => $model,
]);
}
}

view dosyasında kayıdı incelerken link vermek istersek aşağıdaki şekilde bir kullanım yapabiliriz.

<?= DetailView::widget([
‘model’ => $model,
‘attributes’ => [
// ‘id’,
‘birim_adi’,
[
‘attribute’=>’islem_zamani’,
‘format’=>’raw’,
‘value’=>yardimci::mysql_tarihini_arayüze_cevir($model->islem_zamani)
],
[
‘attribute’=>’resmi_yazi’,
‘format’=>’raw’,
‘value’=>Html::a(
‘Resmi Yazısı’,
(‘//localhost’.(Yii::$app->getUrlManager()->getBaseUrl()).”/”.$model->resmi_yazi),
[‘target’=>’_blank’]
),

],
],
]) ?>

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.