upload_plikow
To jest stara wersja strony!
Spis treści
Model
<?php namespace app\models; use yii\base\Model; use yii\web\UploadedFile; /** * Model dla uploadu plików. */ class UploadFormPracaDypl extends Model { /** * @var UploadedFile file atrybut */ public $file; /** * Dposzczalne rozszerzenia POLON : * @return array reguły walidacji. */ public function rules() { return [ [['file'], 'file', 'extensions' => 'txt,rtf,pdf,xps,odt,ods,odp,doc,xls,ppt,docx,xlsx,pptx,csv', 'maxSize' => 20000 * 1024, 'tooBig' => 'Za duży plik! Max: 20MB'], ]; } public function attributeLabels() { return [ 'file' => 'Plik pracy (max 20MB)', ]; } public function upload($path, $name) { if ($this->validate()) { $path_file = $path . '/' . $name . '.' . $this->file->extension; $this->file->saveAs($path_file); return $name . '.' . $this->file->extension; } else { return false; } } }
Controller
public function actionUpPraca($id) { $model_upload = new UploadFormPracaDypl(); if (Yii::$app->request->isPost) { $model_upload->file = UploadedFile::getInstance($model_upload, 'file'); $path = Yii::getAlias('@pliki') . '/prace-dyplomowe/'; if (!is_dir($path)) { mkdir($path); } $name = 'nazwa pliku; if ($plik = $model_upload->upload($path, $name)) { return $this->redirect(Url::previous('moje_studia')); } else { Yii::$app->session->setFlash('danger', "Praca nie została dodana !!!"); return $this->redirect(Url::previous('moje_studia')); } } return $this->renderAjax('up-praca', [ 'model_upload' => $model_upload ]); }
Formularz
<?php //use yii\bootstrap\ActiveForm; use kartik\form\ActiveForm; use yii\helpers\Html; use kartik\file\FileInput; ?> <?php yii\widgets\Pjax::begin(['id' => 'up_pr']) ?> <?php $form = ActiveForm::begin([ 'id' => 'up_praca', 'options' => ['enctype' => 'multipart/form-data', 'data-pjax' => true]]); ?> <?= $form->field($model_upload, 'file')->widget(FileInput::class, [ 'language' => 'pl', 'options' => [ 'multiple'=>false, 'id' => 'pdpl', ], 'pluginOptions' => [ 'showCaption' => false, 'showUpload' => false, ] ])->label(false); ?> <div class="form-group"> <?= Html::submitButton('Zapisz', ['class' => 'btn btn-success submit']) ?> </div> <?php ActiveForm::end(); ?> <?php yii\widgets\Pjax::end() ?>
upload_plikow.1665258861.txt.gz · ostatnio zmienione: 2024/09/15 16:22 (edycja zewnętrzna)