-
Notifications
You must be signed in to change notification settings - Fork 228
/
Copy pathattachedfiles_wizard.php
102 lines (92 loc) · 3.64 KB
/
attachedfiles_wizard.php
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?php
require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/stdf.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/CFile.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/attachedfiles.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/wizard/wizard.php");
session_start();
$uid = $_SESSION['WUID'];
if(!$uid || !$_POST['attachedfiles_session']) return;
$action = $_POST['attachedfiles_action'];
$type = $_POST['attachedfiles_type'];
$sess = $_POST['attachedfiles_session'];
switch($action) {
case 'add':
if(is_array($_FILES['attachedfiles_file']) && !$_FILES['attachedfiles_file']['error']) {
$dir = wizard::FILE_DIR;
$cFile = new CFile($_FILES['attachedfiles_file']);
$cFile->table = 'file';
switch($type) {
case 'wizard':
$max_files = wizard::MAX_FILE_COUNT;
$max_files_size = wizard::MAX_FILE_SIZE;
break;
default:
$file['error'] = 'Îøèáêà çàãðóçêè ôàéëà';
break;
}
$cFile->max_size = $max_files_size;
$cFile->server_root = 1;
$cFile->MoveUploadedFile($dir);
if($cFile->id) {
$attachedfiles = new attachedfiles($sess);
$files_info = $attachedfiles->calcFiles();
$files_count = $files_info['count'];
$files_size = $files_info['size'];
if(($files_count+1)>$max_files) {
$file['error'] = "Ìàêñèìàëüíîå êîëè÷åñòâî ôàéëîâ: {$max_files}";
}
if(($files_size+$cFile->size)>$max_files_size) {
$file['error'] = "Ìàêñèìàëüíûé îáúåì ôàéëîâ: ".ConvertBtoMB($max_files_size);
}
if( in_array($cFile->getext(), $GLOBALS['disallowed_array'])) {
$file['error'] = "Íåäîïóñòèìûé ôîðìàò ôàéëà";
}
if($file['error']) {
$cFile->Delete($cFile->id);
} else {
$fileinfo = $attachedfiles->add($cFile);
$file['id'] = md5($fileinfo['id']);
$file['name'] = $fileinfo['name'];
$file['path'] = WDCPREFIX."/".$fileinfo['path'];
$file['size'] = ConvertBtoMB($fileinfo['size']);
$file['type'] = $fileinfo['type'];
}
} else {
if($_FILES['attachedfiles_file']['size']>$max_files_size) {
$file['error'] = "Ìàêñèìàëüíûé îáúåì ôàéëîâ: ".ConvertBtoMB($max_files_size);
} else {
$file['error'] = 'Îøèáêà çàãðóçêè ôàéëà';
}
}
}
break;
case 'delete':
$attachedfiles = new attachedfiles($sess);
$attachedfiles->delete($_POST['attachedfiles_delete']);
break;
}
?>
<script type="text/javascript">
window.parent.attachedFiles.clearFileField();
<?php
switch($action) {
case 'add':
?>
var message = new Object;
message.error = '<?=$file['error']?>';
message.id = '<?=$file['id']?>';
message.name = '<?=$file['name']?>';
message.path = '<?=$file['path']?>';
message.size = '<?=$file['size']?>';
message.type = '<?=$file['type']?>';
window.parent.attachedFiles.upload_done(message);
<?php
break;
case 'delete':
?>
window.parent.attachedFiles.del_done();
<?php
break;
}
?>
</script>