-
Notifications
You must be signed in to change notification settings - Fork 1
/
nuupload.php
68 lines (57 loc) · 1.99 KB
/
nuupload.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
<?php
require_once('nucommon.php');
require_once('nudatabase.php');
function nuUploadFile()
{
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
http_response_code(400);
header('Content-type: application/json');
header('Content-Type: text/plain; charset=utf-8');
// error_log(print_r($_POST,true));
$proc = isset($_POST["procedure"]) ? $_POST["procedure"] : 'NUUPLOADFILE_TEMPLATE';
$sessionId = isset($_POST["session_id"]) ? $_POST["session_id"] : '';
$result = json_encode('{}');
try {
// Validate file data
if (!isset($_FILES['file']['error']) || is_array($_FILES['file']['error'])) {
throw new Exception('Invalid file data');
}
// Check file error
switch ($_FILES['file']['error']) {
case UPLOAD_ERR_OK:
break;
case UPLOAD_ERR_NO_FILE:
throw new Exception('No file uploaded');
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
throw new Exception('Exceeded file size limit');
default:
throw new Exception('Unknown file error');
}
// Check if valid Session Id
$t = nuRunQuery('SELECT * FROM `zzzzsys_session` where `zzzzsys_session_id` = ?', [$sessionId]);
if (db_num_rows($t) == 0) {
throw new Exception('Invalid Session Id');
}
$code = nuProcedure($proc);
if ($code != '') {
eval($code);
return $result;
} else {
throw new Exception('Unknown Procedure Name');
}
} catch(\Throwable $th) {
$result = nuSetUploadError($th->getMessage());
}
}
function nuSetUploadError($message, $error = null)
{
if ($error == null) {
$error = nuTranslate('Sorry, there was an error uploading your file.');
}
http_response_code(401);
$data = ['error' => $error, 'message' => $message];
return json_encode($data);
}