ActionController.php
2.59 KB
1
2
3
4
5
6
7
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
62
63
64
65
66
67
68
69
<?php
namespace common\modules\artboxfile\controllers;
use common\modules\artboxfile\models\File;
use Yii;
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 {
print json_encode(['message' => $message, 'tmpfile' => $full_path, 'filename' => $name]);
}
exit;
}
protected function getex($filename) {
return end(explode(".", $filename));
}
}