Blame view

common/modules/artboxfile/controllers/ActionController.php 2.84 KB
98e8e9e5   Karnovsky A   ArtboxImage uploader
1
2
3
4
5
6
  <?php
  
  namespace common\modules\artboxfile\controllers;
  
  use common\modules\artboxfile\models\File;
  use Yii;
a123b4b4   Karnovsky A   ArtboxImage uploader
7
  use yii\helpers\Html;
98e8e9e5   Karnovsky A   ArtboxImage uploader
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
  use yii\web\Controller;
  use yii\web\UploadedFile;
  
  class ActionController extends Controller {
  
      public $tmpDir = '@storage/tmp';
  
      public function actionUpload() {
          $request = Yii::$app->request->post();
  
          $multiple = !empty($request['multiple']);
          $fileField = empty($request['fileField']) ? 'file' : $request['fileField'];
          $formField = empty($request['formField']) ? 'fileUpload' : $request['formField'];
  
  
          if($_FILES[$formField])
          {
              if (($_FILES[$formField] == "none") OR (empty($_FILES[$formField]['name'])) )
              {
                  $error = "Вы не выбрали файл";
              }
              else if ($_FILES[$formField]["size"] == 0 OR $_FILES[$formField]["size"] > 2050000)
              {
                  $error = "Размер файла не соответствует нормам";
              }
              /*else if (($_FILES['upload']["type"] != "image/jpeg") AND ($_FILES['upload']["type"] != "image/jpeg") AND ($_FILES['upload']["type"] != "image/png") AND ($_FILES['upload']['type'] != 'image/gif'))
              {
                  $message = "Допускается загрузка только картинок JPG, GIF и PNG.";
              }*/
              else if (!is_uploaded_file($_FILES[$formField]["tmp_name"]))
              {
                  $error = "Что-то пошло не так. Попытайтесь загрузить файл ещё раз.";
              }
              else{
                  $ext = $this->getex($_FILES[$formField]['name']);
                  $name = $_FILES[$formField]['name'] .'.'. $ext;
                  $tmpName = uniqid('tmpfile_') .'.'. $ext;
  
                  $path = Yii::getAlias($this->tmpDir);
                  if(!is_dir($path)) {
                      mkdir($path, 0755, true);
                  }
  
                  if (!move_uploaded_file($_FILES[$formField]['tmp_name'], $path .'/'. $tmpName)) {
                      $error = "File not uploaded";
                  } else {
                      $full_path = $path .'/'. $tmpName;
                      $message = "Файл " . $_FILES[$formField]['name'] . " in $full_path загружен";
                  }
              }
          }
          if (!empty($error)) {
              print json_encode(['error' => $error]);
          } else {
a123b4b4   Karnovsky A   ArtboxImage uploader
62
63
64
65
66
67
68
              $sendingData = [
                  'append' => $multiple,
  //                'initialPreview' => Html::img()
  //                'initialPreviewConfig' => ,
  //                'initialPreviewThumbTags' => ,
  
              ];
98e8e9e5   Karnovsky A   ArtboxImage uploader
69
70
71
72
73
74
75
76
77
              print json_encode(['message' => $message, 'tmpfile' => $full_path, 'filename' => $name]);
          }
          exit;
      }
  
      protected function getex($filename) {
          return end(explode(".", $filename));
      }
  }