Narzędzia użytkownika

Narzędzia witryny


upload_plikow

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronachPoprzednia wersja
Nowa wersja
Poprzednia wersja
upload_plikow [2022/10/08 21:54] zbychupload_plikow [2024/11/12 18:19] (aktualna) – [Download plik] zbych
Linia 1: Linia 1:
 +====== Alias do folderu ======
 +Dostęp do folderu pliki w katalogu głównym aplikacji  
 +W pliku common/config/main.php trzeba dopisać w sekcji aliases:
 +<code php>
 +'aliases' => [
 +        '@bower' => '@vendor/bower-asset',
 +        '@npm' => '@vendor/npm-asset',
 +        
 +        '@pliki'=>realpath(dirname(__FILE__).'/../../pliki')
 +    ],
 +</code>
 +W folderze pliki mam podfolder prace-dyplomowe
 +ścieżka do tego podfolderu wygląda tak:
 +<code php>
 +$path = Yii::getAlias('@pliki') . '/prace-dyplomowe/';
 +</code>
 +na moim lokalnym serwerze $path wyglada tak: /var/www/projekt100/pliki/prace-dyplomowe/
 +
 +
 ====== Model ====== ====== Model ======
 <code php> <code php>
Linia 51: Linia 70:
 ===== Controller ===== ===== Controller =====
 <code php> <code php>
 +
 +use yii\web\UploadedFile;
 +use app\models\UploadFormPracaDypl;
 +
 +...
 +
 public function actionUpPraca($id) { public function actionUpPraca($id) {
  
Linia 61: Linia 86:
             }             }
                          
-            $name = 'nazwa pliku;+            $name = 'nazwa pliku';
             if ($plik = $model_upload->upload($path, $name)) {             if ($plik = $model_upload->upload($path, $name)) {
                                  
Linia 79: Linia 104:
 <code php> <code php>
 <?php <?php
- 
-//use yii\bootstrap\ActiveForm; 
 use kartik\form\ActiveForm; use kartik\form\ActiveForm;
 use yii\helpers\Html; use yii\helpers\Html;
Linia 111: Linia 134:
  
 </code> </code>
 +
 +====== Download plik ======
 +
 +<code php>
 +public function actionDownload($id) {
 +        ...
 +        $path = Yii::getAlias('@pliki') . '/zaswiadczenia/' . $model_plik->nazwa_pliku;
 +        if (file_exists($path)) {
 +            return Yii::$app->response->sendFile($path, $model_plik->nazwa_pliku, ['inline' => true]);
 +        }
 +    }
 +</code>
 +
 +===== Plik z pola blob w tabeli BD =====
 +<code php>
 + public function actionDokument($id) {
 +        ob_start();
 +        $mod = Dokumenty::find()
 +            ->where(['id' => $id])
 +            ->one();
 +        if (!$mod) {
 +            throw new \yii\web\NotFoundHttpException('Dokument nie został znaleziony.');
 +        }
 +        $nazwa = str_replace(' ', '_', trim($mod->tytul));
 +        $response = Yii::$app->response;
 +        $response->format = \yii\web\Response::FORMAT_RAW;
 +        $response->headers->set('Content-Type', $mod->mime_type);
 +        $response->headers->set('Content-Disposition', 'inline; filename="' . str_replace(' ', '_', trim($mod->tytul)) . '.' . $mod->rozszerzenie . '"');
 +        $response->headers->set('Content-Length', strlen($mod->plik));
 +        $response->content = $mod->plik;
 +
 +        // Opcjonalnie: zakończenie i wyczyszczenie bufora wyjścia
 +        ob_end_clean();
 +        return $response;
 +    }
 +</code>
 +
  
  
upload_plikow.1665258861.txt.gz · ostatnio zmienione: 2024/09/15 16:22 (edycja zewnętrzna)